]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
(ASM_OUTPUT_SECTION_NAME): Use asm_out_text_file for functions.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
3a887df4
DM
1Wed Jan 25 15:02:09 1995 David S. Miller (davem@nadzieja.rutgers.edu)
2
3 * class.c (instantiate_type): Change error message text.
4 * typeck2.c (store_init_value): Likewise.
5
e1cd6e56
MS
6Mon Jan 23 21:57:14 1995 Mike Stump <mrs@cygnus.com>
7
8 * pt.c (tsubst): When we copy a node, don't forget to copy
9 TREE_CHAIN, we use it later.
10
11Mon Jan 23 03:33:47 1995 Jason Merrill <jason@phydeaux.cygnus.com>
12
13 * typeck.c (convert_for_assignment): Initialize variable before use.
14
15Fri Jan 20 01:17:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
16
17 * g++.c (main): Link with both libstdc++ and libg++ if called as
18 something ending with "g++", otherwise only libstdc++. Move -lm to
19 the end of the line.
20
21Thu Jan 19 15:43:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
22
23 * call.c (build_method_call): Don't mess with 'this' before calling
24 compute_conversion_costs.
25
26Wed Jan 18 15:40:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
27
28 * search.c (get_matching_virtual): Give line number for previous
29 declaration.
30
31 * call.c (convert_harshness): Handle conversions to references
32 better.
33
34 * cvt.c (build_up_reference): OK, handle {MIN,MAX}_EXPR *properly*.
35
36Wed Jan 18 15:21:38 1995 Mike Stump <mrs@cygnus.com>
37
38 * class.c (instantiate_type): Use DECL_CHAIN to walk lists instead,
39 as the TREE_CHAIN for methods will take us to the next differently
40 named function, DECL_CHAIN won't.
41
42Wed Jan 18 14:26:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
43
44 * tree.c (lvalue_p): Handle {MIN,MAX}_EXPR.
45
46 * decl2.c (lang_decode_option): -Wall implies -Wparentheses.
47 warn_parentheses defaults to 0.
48
49 * decl.c (grokparms): Put back call to require_instantiated_type.
50
51Tue Jan 17 19:56:15 1995 Mike Stump <mrs@cygnus.com>
52
53 * except.c (exception_section): Use the data section on the rs6000.
54 Change calling convention for named_section.
55
56Wed Jan 17 18:20:57 1994 Fergus Henderson <fjh@munta.cs.mu.oz.au>
57
58 * cp-tree.h : Make if (x=0) warn with wall
59 * parse.y : Make if (x=0) warn with wall
60
255512c1
JM
61Tue Jan 17 14:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
62
e1cd6e56
MS
63 * decl.c (BOOL_TYPE_SIZE): BITS_PER_WORD if SLOW_BYTE_ACCESS,
64 BITS_PER_UNIT otherwise.
65
66 * search.c (get_matching_virtual): Don't check the binfo if the
67 types are the same.
68
69 * cvt.c (cp_convert): Just call truthvalue_conversion to convert to
255512c1
JM
70 bool.
71
72Mon Jan 16 13:28:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
73
e1cd6e56
MS
74 * various: Use boolean_type_node, boolean_true_node,
75 boolean_false_node.
76
77 * search.c (get_matching_virtual): Allow covariant returns that
78 don't require pointer adjustment.
79
80 * typeck.c (build_conditional_expr): Don't call default_conversion
81 on ifexp.
82
83 * cvt.c (build_up_reference): Handle MIN_EXPR and MAX_EXPR.
84
85 * decl.c (grokdeclarator): Upgrade warning about &const to pedwarn.
86
87Sun Jan 15 22:17:32 1995 dcb@lovat.fmrco.COM (David Binderman)
88
89 * pt.c (do_function_instantiation): Free targs once we're done.
255512c1
JM
90
91Sun Jan 15 22:17:32 1995 Jason Merrill <jason@phydeaux.cygnus.com>
92
e1cd6e56
MS
93 * decl.c (BOOL_TYPE_SIZE): Defaults to BITS_PER_WORD.
94 (init_decl_processing): Use BOOL_TYPE_SIZE instead of CHAR_TYPE_SIZE
95 for bool.
96
97Sat Jan 14 05:33:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
98
99 * decl2.c (finish_file): We need to mess up if there are any
100 variables in the list, not just if there is one with a constructor.
101
102Fri Jan 13 14:42:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
103
104 * decl.c (duplicate_decls): Propagate DECL_STATIC_{CON,DE}STRUCTOR.
105 (finish_function): Handle DECL_STATIC_{CON,DE}STRUCTOR.
106 (finish_function): Trust rest_of_compilation.
107
108 * decl2.c (finish_file): Also call functions designated as static
109 constructors/destructors.
110
111 * decl.c (grokdeclarator): Allow access decls of operator functions.
112 (grokparms): Only do convert_for_initialization if the initializer
113 has a type.
114 (duplicate_decls): Put back push_obstacks_nochange call.
115
116 * lex.c (real_yylex): Downgrade complaint about the escape sequence
117 being too large from pedwarn to warning.
118
119 * decl.c (grokdeclarator): Don't complain about long long in system
120 headers.
121
122 * lex.c (real_yylex): Handle digraphs.
123
124Thu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
125
126 * decl.c (init_decl_processing): -f{no-,}strict-prototype only
127 affects C linkage declarations now.
128
129 * typeck.c (comp_target_types): Grok simple contravariant conversions.
130 (common_type): t1 and t2 are interchangeable.
131
132 * various: Test return value of comp_target_types differently in
133 different places; it now returns -1 for a contravariant conversion
134 (which is fine in symmetric cases).
135
136 (common_type): Prefer long double to double even when
137 they have the same precision.
138
139 * decl.c (grokparms): Call convert_for_initialization to check
140 default arguments.
141
142 * init.c (build_new): void_type_node has a size (of 0).
143
144 * decl.c (decls_match): Also check for agreement of TREE_READONLY
145 and TREE_THIS_VOLATILE.
146 (push_class_level_binding): Properly handle shadowing of
147 nested tags by fields.
148
149 * search.c (dfs_pushdecls): Ditto.
150
151 * decl2.c (finish_file): Don't second-guess self-initialization.
152
153 * cvt.c (convert_to_reference): Work with expr directly, rather than
154 a copy.
155
156 * decl.c (push_overloaded_decl): Only shadow artificial TYPE_DECLs.
157
158 * init.c (add_friend): Downgrade duplicate friend message from
159 pedwarn to warning.
160
161 * decl.c (duplicate_decls): Push obstacks before calling common_type.
162
163Thu Jan 12 17:15:21 1995 Michael Ben-Gershon <mybg@cs.huji.ac.il>
164
165 * except.c (push_eh_entry): set LABEL_PRESERVE_P flag for
166 exception table labels.
167 (expand_start_all_catch): Ditto.
168 (expand_leftover_cleanups): Ditto.
169 (expand_end_catch_block): Ditto.
170 * except.c (make_first_label): new function.
171 (expand_start_all_catch): add a call to make_first_label() before
172 using a label as a jump destination.
173 (expand_end_all_catch): Ditto.
174 (expand_leftover_cleanups): Ditto.
175 (expand_end_catch_block): Ditto.
176 (expand_builtin_throw): Ditto.
177 (expand_throw): Ditto.
178 * except.c: Add ARM processor support for exception handling.
179
180Thu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
181
182 (complete_array_type): Copy code from C frontend.
183
184 * lex.c (real_yylex): Don't multiply the length of a wide string
185 literal by WCHAR_BYTES.
186
187 * decl.c (pushdecl): Check for redeclaration of wchar_t here.
188 (duplicate_decls): Instead of here.
189 (define_label): Complain about a label named wchar_t.
190 (grokdeclarator): Complain about declarations of
191 operator-function-ids as non-functions.
192
193 * typeck.c (unary_complex_lvalue): Also wrap prefix -- and ++ in
194 COMPOUND_EXPRs.
195 (build_unary_op): Wrap unary plus in a NON_LVALUE_EXPR.
196
197 * lex.c (real_yylex): Don't skip whitespace when reading the next
198 character after ->.
199
200Wed Jan 11 16:32:49 1995 Mike Stump <mrs@cygnus.com>
201
202 * except.c: Allow cc1plus to be built with native compiler on rs6000.
203 (expand_start_all_catch): Add assemble_external calls for various
204 routines we call.
205 (expand_leftover_cleanups): Ditto.
206 (expand_start_catch_block): Ditto.
207 (do_unwind): Ditto.
208 (expand_builtin_throw): Ditto.
209
210Wed Jan 11 01:05:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
211
212 * decl.c (pushtag): Only look for a previous decl in the current
213 binding level. Use explicit global scope in DECL_NESTED_TYPENAME.
214
215 * gxx.gperf: Add __signature__ and __sigof__ keywords.
216
217 * decl2.c (lang_decode_option): -ansi does not set flag_no_asm. It
218 does set flag_no_gnu_keywords and flag_operator_names.
219
220 * lex.c (init_lex): 'overload' is not a keyword unless -traditional.
221 Unset extension keywords if -fno-gnu-keywords.
222 Allow operator names ('bitand') if -foperator-names.
223 Never unset 'asm'; -fno-asm only affects 'typeof'.
224
225 * decl.c (lookup_name_real): The got_object special lookup only
226 applies to types.
227
228Tue Jan 10 18:07:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
229
230 * spew.c (yylex): Also use DECL_NESTED_TYPENAME if got_object is set.
231
232 * parse.y (primary): Unset got_object after all rules that use the
233 'object' nonterminal.
234 (object): Set got_object.
235
236 * lex.h: Declare got_object.
237
238 * decl.c (lookup_name_real): Also lookup names in the context of an
239 object specified.
240
241Tue Jan 10 14:30:30 1995 Mike Stump <mrs@cygnus.com>
242
243 * typeck.c (get_member_function_from_ptrfunc): Use ptrdiff_type_node
244 for things that have to be added to pointers, not size_type. Cures
245 problems with pointer to members on Alphas.
246 (build_binary_op_nodefault): Ditto.
247 (get_delta_difference_: Ditto.
248 (build_ptrmemfunc): Ditto.
249
250Tue Jan 10 01:49:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
251
252 * decl.c (pushtag): Stick the new decl in TYPE_NAME before pushing
253 it.
254
255 * typeck.c (build_component_ref): Don't build up a COMPONENT_REF
256 when dealing with overloaded member functions; just act like
257 build_offset_ref.
258 (commonparms): Remove misleading comment.
259
260 * decl.c (duplicate_decls): Complain about repeated default
261 arguments here.
262 (redeclaration_error_message): Instead of here.
263 (pushdecl): Complain about missing default arguments here.
264 (grokparms): Instead of here.
265 (lookup_name_current_level): Also match on DECL_ASSEMBLER_NAME.
266 (grok_reference_init): Do not complain about missing initializer if
267 declared 'extern'.
268
269 * search.c (lookup_field): Don't return a TYPE_DECL if there is a
270 function alternative and want_type is not set.
271
272Mon Jan 9 18:16:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
273
274 * decl.c (pushtag): Don't set TYPE_NAME to an identifier. Do push
275 the decl when the type has no TYPE_NAME.
276 (lookup_nested_type): Don't assume that type has TYPE_NAME set.
277 (lookup_name_real): Call lookup_field with want_type =
278 prefer_type.
279
280 * search.c (lookup_field): Handle want_type properly in the presence
281 of fields with the same name.
282
283 * decl.c (set_nested_typename): Set nested name for file-scope types
284 to include leading ::.
285 (pushdecl): Set the nested typename if the decl doesn't have one,
286 rather than if the type's canonical decl doesn't have one.
287
288Mon Jan 9 16:48:16 1995 Steve Chamberlain (sac@jonny.cygnus.com)
289
290 * typeck.c (pointer_int_sum): Use offset size when calculating
291 index expression.
292
293Mon Jan 9 03:44:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
294
295 * typeck.c (convert_for_assignment): Complain about contravariance
296 violation here.
297 (comp_target_types): Instead of here.
298 (build_unary_op): resolve_offset_ref before checking for a valid
299 type.
300
301 * spew.c (yylex): Decrement looking_for_typename after we see a
302 _DEFN.
303
304 * decl.c (pushdecl): Don't install an artificial TYPE_DECL in
305 IDENTIFIER_LOCAL_VALUE if we already have a decl with that name.
306
307 * typeck.c (convert_for_assignment): Converting pointers to bool
308 does not need a cast.
309
310Sun Jan 8 18:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
311
312 * class.c (instantiate_type): Initialize nsubsts parm.
313
314 * pt.c (do_function_instantiation): Ditto.
315
316Sat Jan 7 14:37:05 1995 Jason Merrill <jason@phydeaux.cygnus.com>
317
318 * pt.c (tsubst): Use TREE_STATIC instead of DECL_INLINE &&
319 DECL_SAVED_INSNS to determine whether or not we've seen a definition
320 of this function.
321 (instantiate_template): Ditto.
322
323 * call.c (convert_harshness): Allow const reference binding when
324 called from the overloading code, but not when called from
325 can_convert (since it isn't a conversion).
326 (convert_harshness): Put back some disabled code.
327
328Fri Jan 6 14:10:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
329
330 * call.c (convert_harshness): There is no implicit conversion from
331 void* to other pointer types (unless the parameter is (void*)0).
332 (convert_harshness): Non-lvalues do not convert to reference types.
333
334 * class.c (finish_struct_methods): Still set
335 TYPE_HAS_{INT,REAL}_CONVERSION.
336
337 * call.c (can_convert): Don't use aggregate initialization.
338
339 * cp-tree.h: Declare lookup_conversions.
340
341Thu Jan 5 21:08:00 1995 Mike Stump <mrs@cygnus.com>
342
343 * parse.y (simple_stmt): Fix duplicate case value error messages to
344 be more readable.
345
346Wed Jan 4 16:44:19 1995 Jason Merrill <jason@phydeaux.cygnus.com>
347
348 * cvt.c (build_type_conversion): Total rewrite to use
349 convert_harshness instead of reproducing conversion logic here. Now
350 much shorter.
351
352 * call.c (convert_harshness): Support conversions to bool.
353 (can_convert): Checks whether a conversion is less harsh
354 than USER_CODE, for build_type_conversion.
355
356 * search.c (add_conversions): Function for passing to dfs_walk which
357 adds all the type conversion operators in the current type to a list.
358 (lookup_conversions): Calls dfs_walk with add_conversions and return
359 the list.
360 (dfs_walk): Don't require a qfn.
361
362 * cp-tree.h: Lose CLASSTYPE_CONVERSIONS hackery.
363 (CLASSTYPE_FIRST_CONVERSION): Points to elt 1 of CLASSTYPE_METHOD_VEC.
364
365 * class.c (finish_struct_bits): Lose CLASSTYPE_CONVERSIONS hackery.
366 (grow_method): A separate function for building onto the growing
367 method vector.
368 (finish_struct_methods): Use it. Put all type conversion operators
369 right after the constructors. Perhaps we should sort the methods
370 alphabetically?
371
372Mon Jan 2 14:42:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
373
374 * call.c (build_method_call): Lose another misleading shortcut.
375
376Fri Dec 30 17:57:30 1994 Mike Stump <mrs@cygnus.com>
377
378 * gc.c (build_bltn_desc): Handle bool as a built-in type.
379
380Fri Dec 30 14:20:21 1994 Mike Stump <mrs@cygnus.com>
381
382 * tree.c (layout_vbasetypes): Ensure that we don't loose alignment
383 on the complete type because of small virtual bases.
255512c1 384
8145f082
MS
385Fri Dec 30 12:22:29 1994 Mike Stump <mrs@cygnus.com>
386
387 * decl.c (n_incomplete): Bump n_incomplete up to int to match C
388 front end.
389 (pushdecl): Also count decls pushed that are of a type being defined
390 as incomplete things.
391 * class.c (finish_struct): Move hack_incomplete_structures up to
392 just after we set it as not being defined, so that the decls we
393 build for RTTI don't count as incomplete.
394
395Thu Dec 29 18:20:57 1994 Mike Stump <mrs@cygnus.com>
396
397 * pt.c (tsubst): Fix problem with defining constructors in templated
398 classes with virtual bases.
399
400Wed Dec 28 08:31:00 1994 Mike Stump <mrs@cygnus.com>
401
402 * parse.y (TYPEID): Strip top-level cv-qualifiers on typeid
403 expressions.
404 * gc.c (build_typeid): Ditto.
405
406Thu Dec 22 17:26:33 1994 Mike Stump <mrs@cygnus.com>
407
408 * cvt.c (build_up_reference): Fix breakage introduced on Nov 29,
409 don't assert on complex AGGR inits.
410
411Thu Dec 22 14:32:31 1994 Mike Stump <mrs@cygnus.com>
412
413 * method.c (build_overload_value): Handle pointer to members as
414 template arguments.
415
416Thu Dec 22 13:09:07 1994 Mike Stump <mrs@cygnus.com>
417
418 * typeck.c (unary_complex_lvalue): Don't call sorry if we know how
419 to do take the address of a data member for a pointer to data
420 member.
421
422Thu Dec 22 10:04:19 1994 Mike Stump <mrs@cygnus.com>
423
424 * decl.c (grokdeclarator): Use the typedef name for linkage if the
425 type doesn't otherwise have a name.
426
427 * decl2.c (grokfield): Ditto.
428
429 * class.c (finish_struct): Since we reuse the TYPE_DECL for the
430 DECL_NAME of enums, structs and classes, we have to avoid trying to
431 put it in the TYPE_FIELDS again.
432
433Wed Dec 21 11:07:05 1994 Mike Stump <mrs@cygnus.com>
434
435 * decl2.c (check_classfn): Ignore this parameter on static functions
436 when checking to see if we match.
437
438Tue Dec 20 17:47:02 1994 Mike Stump <mrs@cygnus.com>
439
440 * typeck.c (unary_complex_lvalue): Handle address of non-left most
441 pointers to members by calling get_delta_difference.
442
5edb8b93
MS
443Mon Dec 19 22:40:53 1994 Mike Stump <mrs@cygnus.com>
444
445 * decl2.c (check_classfn): Don't use decls_match yet, as it modifies
446 static functions to early.
447
448Thu Dec 19 22:37:48 1994 Mike Stump <mrs@cygnus.com>
449
450 * method.c (make_thunk): Handle encoding of positive thunk offsets.
451
452Sat Dec 17 13:29:50 1994 Doug Evans <dje@canuck.cygnus.com>
453
454 * Make-lang.in (.PHONY): Tell GNU make C++ and c++ are phony targets.
455
6060a796
MS
456Thu Dec 15 16:32:12 1994 Mike Stump <mrs@cygnus.com>
457
458 * decl2.c (check_classfn): Use decls_match to check if this has
459 already been declared, as the DECL_ASSEMBLER_NAME may have been
460 changed via asm("new_name").
461 * decl.c (decls_match): Make public.
462
463Thu Dec 15 15:17:55 1994 Mike Stump <mrs@cygnus.com>
464
465 * *.[chy] (expand_aggr_init) Add fourth argument to handle
466 distinction between = init and (init) style of initializations.
467 * *.[chy] (finish_decl): Add fifth argument to to handle
468 distinction between = init and (init) style of initializations.
469
470Tue Dec 13 19:16:05 1994 Mike Stump <mrs@cygnus.com>
471
472 Fix some random `explicit' bugs.
473
474 * cvt.c (convert_to_reference): Add third parameter to
475 convert_force.
476 (convert_force): Ditto.
477 * call.c (build_method_call): Ditto.
478 * decl2.c (setup_vtbl_ptr): Ditto.
479 * init.c (expand_virtual_init): Ditto.
480 (build_member_call): Ditto.
481 (build_delete): Ditto.
482 (build_vbase_delete): Ditto.
483 * typeck.c (build_component_addr): Ditto.
484 (build_c_cast): Ditto.
485 (build_modify_expr): Ditto.
486 * cp-tree.h (CONV_NONCONVERTING): Ditto. Add so that we can
487 distinguish the context in which the conversion appears. Add thrid
488 argument to build_c_cast.
489 * cvt.c (cp_convert): Pass whether or not we want to consider
490 non-converting constructors down to build_method_call.
491 * decl2.c (reparse_absdcl_as_casts): Add third argument to
492 build_c_cast.
493 * gc.c (build_m_desc): Ditto.
494 * init.c (build_new): Ditto.
495 * parse.y (expr_no_commas): Ditto.
496 (primary): Ditto.
497 * typeck.c (build_x_function_call): Ditto.
498 (build_static_cast): Ditto.
499 (build_reinterpret_cast): Ditto.
500 (build_const_cast): Ditto.
501 (build_c_cast): Ditto.
502 (build_ptrmemfunc): Ditto.
503 * typeck2.c (build_functional_cast): Ditto.
504 * init.c (expand_aggr_init): Added LOOKUP_ONLYCONVERTING to
505 expand_aggr_init_1 as inits are converted to the destination type.
506
507Tue Dec 13 16:18:57 1994 Jason Merrill <jason@phydeaux.cygnus.com>
508
509 * Make-lang.in (cc1plus): Depends on c-pragma.o.
510
511 * Makefile.in (OBJ{DEP,}S): Add ../c-pragma.o.
512
513 * lex.c (check_newline): If the #pragma is not recognized by g++,
514 try machine-specific ones too.
515 (handle_sysv_pragma): Copied from c-lex.c.
516
517Mon Dec 12 23:53:06 1994 Mike Stump <mrs@cygnus.com>
518
519 * except.c (expand_throw): Fix Dec 6th change, build_new likes a
520 reference better.
521
522Mon Dec 12 18:01:00 1994 Jason Merrill <jason@phydeaux.cygnus.com>
523
524 * typeck.c (build_binary_op): Lose checks on TYPE_PTRMEMFUNC_P with
525 IS_AGGR_TYPE, since now they will not both be set on the same type.
526
527 * pt.c (do_pending_expansions): Don't clear TREE_PUBLIC on
528 instantiations controlled by -fexternal-templates.
529
530 * decl.c (duplicate_decls): Don't complain about different values of
531 __attribute__ ((const)) and ((noreturn)).
532
81cdf787
DE
533Fri Dec 9 18:17:37 1994 Doug Evans <dje@cygnus.com>
534
535 * Makefile.in (BISONFLAGS): Delete --yacc.
536 (PARSE_H): Depend on $(PARSE_C), for parallel makes.
537 (PARSE_C): Undo last patch.
538
30ffea6b
MS
539Fri Dec 2 10:44:36 1994 Mike Stump (mrs@wombat.gnu.ai.mit.edu)
540
3526f730 541 * Makefile.in (BISONFLAGS): Add --yacc so that output winds up in
30ffea6b
MS
542 y.tab.c.
543
6060a796
MS
544Thu Dec 8 17:39:46 1994 Jason Merrill <jason@phydeaux.cygnus.com>
545
546 * decl.c (finish_decl): Don't call obscure_complex_init for decls
547 of indeterminate size.
548
549Wed Dec 7 16:49:22 1994 Jason Merrill <jason@phydeaux.cygnus.com>
550
551 * decl.c (obscure_complex_init): Function to tweak the decl to
552 prevent expand_decl from tring to initialize it.
553 (finish_decl): Use it rather than writing the same code in three
554 different places.
555
556 * parse.y (bad_parm): Stop trying to support parms without types.
557
558Wed Dec 7 12:06:56 1994 Mike Stump <mrs@cygnus.com>
559
560 * decl2.c (grokfield): Make asm specs on static member functions
561 work.
562
563Tue Dec 6 15:43:20 1994 Mike Stump <mrs@cygnus.com>
564
565 * except.c (expand_throw): Make a copy of the thrown object.
566
567Tue Dec 6 14:16:34 1994 Jason Merrill <jason@phydeaux.cygnus.com>
568
569 * parse.y: : has lower precedence than =.
570
571Tue Dec 6 12:46:17 1994 Mike Stump <mrs@cygnus.com>
572
573 * decl.c (pushdecl): Use DECL_NAME of VAR_DECLs to avoid namespace
574 manglings.
575 (grokvardecl): Add namespace into variable name.
576
577Tue Dec 6 11:26:55 1994 Mike Stump <mrs@cygnus.com>
578
579 * decl2.c (current_namespace_id): New routine to transform a simple
580 name into a name in a namespace.
581 * decl.c (grokdeclarator): Use it.
582 * decl2.c (get_namespace_id): Find the name of the current
583 namespace.
584 (push_namespace, pop_namespace): Complete out missing
585 functionality.
586
587Mon Dec 5 17:11:51 1994 Jason Merrill <jason@phydeaux.cygnus.com>
588
589 * class.c (finish_struct): Don't use LONG_LONG_TYPE_SIZE, as it may
590 not be defined. Fix warning message for enums and restore warning
591 for non-enums.
592
593 * decl2.c (push_namespace): Dummy function.
594 (pop_namespace): Ditto.
595 (do_namespace_alias): Ditto.
596 (do_using_decl): Ditto.
597 (do_using_directive): Ditto.
598
599 * parse.y: New token NSNAME for namespace names.
600 (extdef): Add namespace, using definitions.
601 (using_decl): New rule for using declarations.
602 (any_id): New rule for identifiers with any degree of scoping.
603 (identifier): Add NSNAME.
604 (notype_identifier): Ditto.
605 (component_decl): Add using_decl.
606 (nested_name_specifier): Add NSNAME SCOPE.
607
608 * typeck.c (convert_for_assignment): Handle conversions between
609 enums and bool.
610
611 * decl.c (duplicate_decls): Only propagate DECL_MAIN_VARIANT on
612 FUNCTION_DECLs.
613
614Mon Dec 5 13:03:16 1994 Mike Stump <mrs@cygnus.com>
615
616 * class.c (finish_struct): Give an error if one tries to declare a
617 bit-field's size greater than a long long, as the backend will dump.
618 It is not an error to declare an enum bit-field greater than its
619 precision. Warn if an enum bit-field is too small to hold all
620 its values.
621
622Mon Dec 5 11:41:50 1994 Mike Stump <mrs@cygnus.com>
623
624 * typeck.c (convert_for_assignment): Use cp_convert instead of
625 convert so that we don't get static casts.
626
627Sun Dec 4 11:59:01 1994 Mike Stump <mrs@cygnus.com>
628
629 * cvt.c (cp_convert): Don't complain about int->enum conversion if
630 we are doing static casts.
631
632Fri Dec 2 18:32:41 1994 Mike Stump <mrs@cygnus.com>
633
634 * error.c (dump_expr): Do something more intelligent with SAVE_EXPRs
635 when dumping expressions in error messages.
636
637Fri Dec 2 17:04:27 1994 Mike Stump <mrs@cygnus.com>
638
639 * gc.c (build_dynamic_cast): Change interface to libg++, ensure that
640 the return type is the right type, and make references work.
641
642Fri Dec 2 16:36:43 1994 Jason Merrill <jason@phydeaux.cygnus.com>
643
644 * decl.c (poplevel): Don't be confused by function-scope
645 declarations of non-nested functions.
646 (duplicate_decls): Propagate DECL_MAIN_VARIANT.
647 (pushdecl): Use duplicate_decls to copy info from old decl into new
648 function-scope one rather than doing it here.
649
650 * decl2.c (mark_inline_for_output): Deal with the DECL_MAIN_VARIANT
651 of this decl, in case this is a function-scope declaration.
652
653 * decl.c (finish_enum): Make sure that the type has the right
654 precision when we call fixup_*_type.
655
656Tue Nov 29 19:12:07 1994 Jason Merrill <jason@phydeaux.cygnus.com>
657
658 * cvt.c (build_up_reference): Strip superfluous NOP_EXPRs; we do
659 want to build up references to rvalues if possible.
660 (cp_convert): Stick on a NOP_EXPR when converting to the same type.
661
662Tue Nov 29 11:28:59 1994 Mike Stump <mrs@cygnus.com>
663
664 * parse.y (maybe_raises): Handle throw ().
665 * parse.y (ansi_raise_identifier): grok type-ids in exception
666 specifications.
667 * tree.c (build_exception_variant): Use list compare to check if
668 two exception specifications match.
669 * decl.c (duplicate_decls, bad_specifiers): Enhance wording on error
670 messages.
671 * call.c (build_method_call): Remove TREE_RAISES.
672 * cvt.c (convert_to_aggr): Ditto.
673 * typeck.c (build_function_call_real, convert_arguments): Ditto.
674 * init.c (expand_aggr_init_1): Ditto.
675
676Tue Nov 29 09:50:39 1994 Mike Stump <mrs@cygnus.com>
677
678 * except.c: Add support for m68k and mips exception handling
679 support.
680
681Tue Nov 29 08:48:33 1994 Mike Stump <mrs@cygnus.com>
682
683 * except.c (expand_end_all_catch): Throw into outer context, if we
684 fall off end of catch handlers.
685
db5ae43f
MS
686Mon Nov 28 16:44:41 1994 Mike Stump <mrs@cygnus.com>
687
688 * Makefile.in: Make is easier to decide where parse.[ch] will be
689 built.
690
af824546
DE
691Thu Nov 17 20:11:24 1994 Doug Evans <dje@cygnus.com>
692
693 * cp/Make-lang.in (CXX_INSTALL_NAME) Use program_transform_name.
694 (GXX_INSTALL_NAME) Likewise.
695 (CXX_CROSS_NAME) Use program_transform_cross_name.
696 (GXX_CROSS_NAME) Likewise.
697 (c++.install-man): Use program_transform_name on g++.1.
698 (c++.uninstall): Likewise.
699
6411126c
PE
700Thu Nov 3 18:48:19 1994 Paul Eggert <eggert@twinsun.com>
701
702 * Makefile.in (spew.o, lex.o, pt.o):
703 Depend on $(srcdir)/parse.h, not parse.h.
704
db5ae43f
MS
705Mon Nov 28 13:53:03 1994 Mike Stump <mrs@cygnus.com>
706
707 * parse.y (THROW): Fix precedence of throw expressions.
708
709Mon Nov 28 13:15:16 1994 Mike Stump <mrs@cygnus.com>
710
711 * typeck.c (build_unary_op): Allow promotions from bool to int on
712 unary ~.
713
714Sun Nov 27 00:16:21 1994 Jason Merrill <jason@phydeaux.cygnus.com>
715
716 * method.c (build_overload_name): Use DECL_ASSEMBLER_NAME for
717 classes when appropriate.
718 (build_overload_nested_name): When dealing with a function context,
719 use ASM_FORMAT_PRIVATE_NAME to tweak the name of the function to
720 avoid conflicts between local classes of the same name.
721
722Wed Nov 23 17:59:42 1994 Mike Stump <mrs@cygnus.com>
723
724 * gxx.gperf, parse.y, lex.h, hash.h, lex.c (init_lex), delc.c
725 (duplicate_decls, grokdeclarator), cp-tree.h: Add support for
726 `explicit'.
727 * cvt.c (convert_to_reference, cp_convert, build_type_conversion_1,
728 build_type_conversion): Use LOOKUP_ONLYCONVERTING in
729 build_method_calls so that non-converting constructors are not used.
730 * call.c (build_method_call): If we shouldn't use a non-converting
731 constructor, then don't.
732
733Wed Nov 23 14:46:56 1994 Jason Merrill <jason@phydeaux.cygnus.com>
734
735 * call.c (build_method_call): Don't try to synthesize methods yet.
736
737Tue Nov 22 12:45:21 1994 Jason Merrill <jason@phydeaux.cygnus.com>
ea943e1d 738
db5ae43f
MS
739 * pt.c (push_template_decls): Create CONST_DECLs for template
740 constant parameters, not VAR_DECLs.
741
742Sat Nov 19 15:28:31 1994 Jim Wilson (wilson@chestnut.cygnus.com)
743
744 * typeck.c (build_binary_op_nodefault): Can shorten shift only if
745 shift count is less than size in bits of arg0.
746
747Thu Nov 17 15:30:50 1994 Mike Stump <mrs@cygnus.com>
748
749 * gxx.gperf, hash.h, lex.c (init_lex, real_yylex), parse.y: Add new
750 ANSI keywords and, and_eq, bitand, bitor, explicit, namespace, not,
751 not_eq, or, or_eq, typename, using, xor, xor_eq to g++. Still need
752 to add support for explicit, namespace, typename, and using, support
753 for the rest is already in.
754
755Thu Nov 17 10:56:50 1994 Jason Merrill <jason@phydeaux.cygnus.com>
756
757 * typeck2.c (build_m_component_ref): Check the basetype of the
758 member pointer against the main variant of the object type.
759
760Mon Nov 14 14:21:52 1994 Jason Merrill <jason@phydeaux.cygnus.com>
761
762 * cvt.c (convert_to_reference): Make sure that the original expr
763 gets its type back when converting a reference.
764
765 * method.c (build_overload_name): Clear numeric_outputed_need_bar here.
766 (build_decl_overload): Instead of here.
767
768Tue Nov 8 17:11:24 1994 Jason Merrill <jason@phydeaux.cygnus.com>
769
770 * cvt.c (cp_convert): Don't build a TARGET_EXPR if we're not in a
771 function.
772
773 * typeck.c (convert_for_initialization): Handle initialization from
774 a TARGET_EXPR.
775
776Sun Nov 6 01:34:24 1994 Jason Merrill (jason@phydeaux.cygnus.com)
777
778 * pt.c (lookup_nested_type_by_name): Fix list-walking logic.
779 (tsubst): When replacing a TEMPLATE_TYPE_PARM, propagate
780 TYPE_READONLY and TYPE_VOLATILE from the argument.
781 (unify): When unifying with a TEMPLATE_TYPE_PARM, remove cv-quals
782 present in parm from arg.
783 (type_unification): Strip REFERENCE_TYPE from the argument type.
784 (unify): Don't strip REFERENCE_TYPE from the argument type.
785
786Sat Nov 5 22:42:15 1994 Greg McGary (gkm@magilla.cichlid.com)
787
788 * pt.c (do_type_instantiation): Check to see if there's a
789 IDENTIFIER_TEMPLATE on a class before calling
790 instantiate_member_templates().
791
792Fri Nov 4 19:04:18 1994 Mike Stump <mrs@cygnus.com>
793
794 * gc.c (get_bad_cast_node): New routine to support compile time
795 throws of bad_cast.
796 * gc.c (build_dynamic_cast): Support throwing of bad_cast at compile
797 time.
798
799Fri Nov 4 11:12:00 1994 Mike Stump <mrs@cygnus.com>
800
801 * except.c: Add hppa support.
802
803Fri Nov 4 10:50:50 1994 Mike Stump <mrs@cygnus.com>
804
805 * except.c: Add rs6000 support.
806
807Thu Nov 3 14:24:23 1994 Mike Stump <mrs@cygnus.com>
808
809 * except.c (do_unwind): Add i[34]86 support.
810
811Thu Nov 3 00:10:46 1994 Jason Merrill (jason@phydeaux.cygnus.com)
812
813 * pt.c (do_pending_expansions): Unset TREE_PUBLIC on implicit
814 instantiations.
815
816Wed Nov 2 15:08:24 1994 Kung Hsu (kung@mexican.cygnus.com)
817
818 * decl.c (finish_function): emit types used in method parameters
819 into symbol table.
820
821Wed Nov 2 15:05:47 1994 Jason Merrill (jason@phydeaux.cygnus.com)
822
823 * pt.c (process_template_parm): Allow pointer to member function
824 template parameter types.
825 (uses_template_parms): Handle pointer to member function
826 CONSTRUCTORs.
827
828 * g++.c (main): Cast first argument of bzero to (char *).
829 Pass -lstdc++ instead of -lg++ unless we are invoked as 'g++'.
830
831Mon Oct 31 14:50:48 1994 Kung Hsu (kung@mexican.cygnus.com)
832
833 * gc.c (build_dynamic_cast): rewrite to make it work.
834 * class.c (finish_vtbls): build more vtables if flag_rtti is on.
835 * class.c (modify_all_direct_vtables): ditto.
836 * init.c (expand_direct_vtbls_init): expand more vtables if
837 flag_rtti is on.
838 * decl.c (init_type_desc): add default return.
839
840Tue Oct 25 17:13:09 1994 Kung Hsu (kung@mexican.cygnus.com)
841
842 * tree.c (debug_binfo): get rid of the initial size entry of
843 vtable.
844 * cp-tree.h: change flag_dossier to flag rtti, define type
845 descriptor type nodes.
846 * decl.c (init_type_desc): new function to initialize type
847 descriptor type nodes.
848 * decl.c (record_builtin_type): change flag_dossier to flag_rtti.
849 * lex.c (init_lex): ditto.
850 * decl.c : change variable flag_dossier to flag_rtti.
851 * decl.c (duplicate_decls): get rid initial size entry of vtable.
852 * decl.c (hack_incomplete_structures): take out assert 164.
853 * search.c (get_abstract_virtuals_1): ditto.
854 * search.c (dfs_init_vbase_pointers): change CLASSTYPE_DOSSIER to
855 CLASSTYPE_RTTI.
856 * parse.y: ditto.
857 * class.c (prepare_fresh_vtable): for virtual bases, get right
858 offset.
859 * class.c (add_virtual_function): change flag_dossier to
860 flag_rtti.
861 * class.c (modify_one_vtable): modify the right rtti entry.
862 * class.c (override_one_vtable): get rid of size entry.
863 * class.c (finish_struct): change flag_dossier to flag_rtti, and
864 build extra vtables, build type descriptors for polymorphic
865 classes.
866 * gc.c (build_headof): make headof() works correctly with new
867 rtti.
868 * gc.c (build_typeid): make this function work with new rtti.
869 * gc.c (get_typeid): make this function work with new rtti.
870 * gc.c (build_bltn_desc): new function for new rtti.
871 * gc.c (build_user_desc): ditto.
872 * gc.c (build_class_desc): ditto.
873 * gc.c (build_ptr_desc): ditto.
874 * gc.c (build_attr_desc): ditto.
875 * gc.c (build_func_desc): ditto.
876 * gc.c (build_ptmf_desc): ditto.
877 * gc.c (build_ptmd_desc): ditto.
878 * gc.c (build_t_desc): ditto.
879 * gc.c : comment out old build_t_desc, build_i_desc, build_m_desc.
880
881Tue Oct 25 13:37:41 1994 Jason Merrill (jason@phydeaux.cygnus.com)
882
883 * call.c (convert_harshness): Check for TREE_UNSIGNED differences
884 after checking for integral conversions.
ea943e1d 885
eae89e04
JM
886Sun Oct 23 13:19:55 1994 Jason Merrill (jason@phydeaux.cygnus.com)
887
db5ae43f
MS
888 * decl2.c: Declare flag_access_control.
889 (struct lang_f_options): Add access-control.
890 * expr.c (cplus_expand_expr, NEW_EXPR): Unset flag_access_control
891 for the call to expand_aggr_init to copy the object out of the
892 pcc_struct_return slot.
893 * search.c (compute_access): if (!flag_access_control) return
894 access_public.
eae89e04
JM
895
896Fri Oct 21 00:32:54 1994 Jason Merrill (jason@phydeaux.cygnus.com)
897
db5ae43f
MS
898 * lex.c (cons_up_default_function): Don't try to defer method
899 synthesis now.
900
901 * decl.c (init_decl_processing): Use __pure_virtual for abort_fndecl
902 instead of abort, since the OSF/1 dynamic linker doesn't like to see
903 relocation entries for abort.
eae89e04 904
db5ae43f
MS
905 * tree.c (array_type_nelts_total): Use sizetype, not
906 integer_type_node.
907 (array_type_nelts_top): Ditto.
908
909Thu Oct 20 15:48:27 1994 Mike Stump <mrs@cygnus.com>
910
911 * decl.c (grokdeclarator): Added handling for catch parameters
912 (CATCHPARM).
913 * except.c (expand_start_catch_block): Use the new CATCHPARM context
914 instead of NORMAL.
915 * except.c (expand_throw): Don't let convert_to_reference complain
916 about what we are doing.
917
918Thu Oct 20 12:55:24 1994 Jim Wilson (wilson@cygnus.com)
919
920 * method.c (emit_thunk): Call instantiate_virtual_regs.
921
922Wed Oct 19 14:15:33 1994 Mike Stump <mrs@cygnus.com>
923
924 * except.c (expand_exception_blocks): Make sure throw code doesn't
925 get put in function that won't be output.
eae89e04
JM
926
927Mon Oct 17 18:03:15 1994 Jason Merrill (jason@phydeaux.cygnus.com)
928
db5ae43f
MS
929 * decl.c (init_decl_processing): Make alloca a builtin.
930
931Thu Oct 27 21:10:25 1994 Craig Burley (craig@burley)
932
933 * g++.c (main): Only decrement "added" and set "library" to
934 NULL when "library" != NULL (just like 940829 fix).
eae89e04 935
c199879d
MS
936Mon Oct 17 15:56:11 1994 Mike Stump <mrs@cygnus.com>
937
938 * except.c (expand_start_catch_block): Make sure the false label
939 gets onto the permanent obstack, as it is used for the exception
940 table.
941
13306d4f
MS
942Fri Oct 14 18:54:48 1994 Mike Stump <mrs@cygnus.com>
943
944 * class.c (modify_one_vtable): Since the DECL_CONTEXT of fndecl can
945 be set just below, use current_fndecl instead.
946
db5ae43f
MS
947Fri Oct 14 15:12:22 1994 Jason Merrill (jason@phydeaux.cygnus.com)
948
949 * init.c (expand_aggr_vbase_init_1): Don't call expand_aggr_init_1
950 with LOOKUP_SPECULATIVELY.
951 (expand_default_init): Abort if build_method_call returns NULL_TREE.
952
953 * typeck.c (build_modify_expr): Don't just build a MODIFY_EXPR if
954 the rhs is a TARGET_EXPR.
955
956 * parse.y (left_curly): Anonymous types are not affected by #pragma
957 interface/implementation.
958
959 * method.c (synthesize_method): Don't call setup_vtbl_ptr for the
960 default constructor if it isn't needed.
961
962 * lex.c (cons_up_default_function): Do synthesize methods for
963 anonymous types if necessary.
964
2f4f907d
JM
965Thu Oct 13 17:44:55 1994 Jason Merrill (jason@phydeaux.cygnus.com)
966
db5ae43f 967 * method.c (build_decl_overload): Set numeric_outputed_need_bar to 0.
2f4f907d
JM
968
969Wed Oct 12 13:27:57 1994 Jason Merrill (jason@phydeaux.cygnus.com)
970
db5ae43f
MS
971 * typeck.c (build_modify_expr): Understand how to copy an aggregate.
972
973 * init.c (expand_default_init): Ditto. Also remove some of the
974 crufty code that assumes methods will not be synthesized properly.
975
976 * lex.c (cons_up_default_function): If the containing type has no
977 name, these functions should never need to be called, so just
978 declare them.
2f4f907d 979
db5ae43f
MS
980 * lex.c (real_yylex): Use HOST_BITS_PER_WIDE_INT to determine the
981 bitmask for lexing character constants.
982
983 * call.c (build_method_call): Disable code that tries to do tricky
984 stuff with a default parameter that is a constructor call, but
985 actually does other tricky stuff that breaks things.
2f4f907d
JM
986
987Wed Oct 12 16:14:01 1994 Benoit Belley <belley@cae.ca>
988
db5ae43f
MS
989 * decl.c (finish_enum): Disable code which forces enums to be signed,
990 since this conflicts with their use as bitfields. type_promotes_to
991 handles promotion of enums of underlying unsigned types to signed
992 integer types.
2f4f907d
JM
993
994Wed Oct 12 13:24:03 1994 Jason Merrill (jason@phydeaux.cygnus.com)
995
db5ae43f
MS
996 * cvt.c (type_promotes_to): Also promote enums to long if
997 appropriate.
2f4f907d 998
db5ae43f
MS
999 * typeck.c (default_conversion): Don't expect type_promotes_to to
1000 return a main variant.
2f4f907d
JM
1001
1002Wed Oct 12 12:19:45 1994 Jason Merrill (jason@phydeaux.cygnus.com)
1003
db5ae43f
MS
1004 * call.c (build_scoped_method_call): Don't lose side effects in the
1005 object expression when calling a non-existent destructor.
2f4f907d
JM
1006
1007Fri Sep 2 19:05:21 1994 Rohan Lenard (rjl@iassf.easams.com.au)
1008
db5ae43f
MS
1009 * call.c (build_scoped_method_call): Remove erroneous error message
1010 when destructor call is written as a scoped call.
2f4f907d 1011
252b87c7 1012Tue Oct 11 23:48:31 1994 Jason Merrill (jason@phydeaux.cygnus.com)
db5ae43f
MS
1013
1014 * various: Cast pointer arguments to bzero and bcopy to char *.
252b87c7 1015
13306d4f
MS
1016Tue Oct 11 19:34:32 1994 Mike Stump <mrs@cygnus.com>
1017
1018 * class.c (get_derived_offset): Added a type parameter to limit how
1019 far up the CLASSTYPE_VFIELD_PARENT chain we search.
1020 * class.c (modify_one_vtable, fixup_vtable_deltas): When forming the
1021 offset to put into the vtable for the this parameter, make sure we
1022 don't offset from a parent of the DECL_CONTEXT of the function.
1023
db5ae43f
MS
1024Tue Oct 11 16:10:52 1994 Jason Merrill (jason@phydeaux.cygnus.com)
1025
1026 * pt.c (do_function_instantiation): Set DECL_EXTERNAL and
1027 TREE_STATIC when setting DECL_INTERFACE_KNOWN.
1028 (do_type_instantiation): Ditto.
1029
1030 * lex.c (cons_up_default_function): Set DECL_INTERFACE_KNOWN,
1031 DECL_EXTERNAL and TREE_STATIC as appropriate.
1032
1033 * decl2.c (finish_file): Also synthesize methods that don't have
1034 DECL_EXTERNAL set. Set interface_unknown before doing so.
1035
1036 * decl.c (start_function): If DECL_INTERFACE_KNOWN is set on the
1037 function decl, don't muck with TREE_PUBLIC and DECL_EXTERNAL.
1038
cba8ba35
JM
1039Mon Oct 10 00:56:53 1994 Jason Merrill (jason@phydeaux.cygnus.com)
1040
db5ae43f
MS
1041 * lex.c (cons_up_default_function): Mark methods in a template class
1042 as template instances. Store the values of interface_unknown and
1043 interface_only for do_pending_inlines.
1044 (do_pending_inlines): Use them.
1045
1046 * decl2.c (finish_file): If we haven't seen a definition of a
1047 function declared static, make the decl non-PUBLIC so compile_file
1048 can give an error.
cba8ba35
JM
1049
1050Sun Oct 9 02:42:29 1994 Jason Merrill (jason@phydeaux.cygnus.com)
1051
db5ae43f
MS
1052 * method.c (do_build_copy_constructor): Handle anonymous unions.
1053 (do_build_assign_ref): Ditto.
1054 (largest_union_member): Move from lex.c.
1055
1056Sat Oct 8 14:59:43 1994 Jason Merrill (jason@phydeaux.cygnus.com)
1057
1058 Re-implement g++'s vague linkage independent of TREE_PUBLIC.
1059 * pt.c (instantiate_member_templates): Lose redundant
1060 -fexternal-templates handling.
1061 (tsubst): Set TREE_PUBLIC and DECL_EXTERNAL on new decls. Don't set
1062 TREE_STATIC or DECL_INTERFACE_KNOWN.
1063 (do_pending_expansions): Predicate on DECL_INTERFACE_KNOWN instead
1064 of DECL_EXTERNAL for explicit instantiations.
1065 (do_function_instantiation): Do the new thing.
1066 (do_type_instantiation): Ditto.
1067 (instantiate_template): Deal with member templates defined in a .cc
1068 file with -fexternal-templates.
1069 * except.c (expand_exception_blocks): Use DECL_LINKAGE_KNOWN to
1070 decide whether to stick builtin_throw here.
1071 * decl2.c (import_export_inline): Predicate on DECL_INTERFACE_KNOWN
1072 rather than TREE_PUBLIC. Generally fix rules.
1073 (finish_file): Use DECL_INITIAL to determine whether or not a method
1074 has been synthesized, rather than TREE_ASM_WRITTEN.
1075 * decl.c (warn_extern_redeclared_static): Use DECL_PUBLIC instead of
1076 TREE_PUBLIC.
1077 (pushdecl): Ditto.
1078 (duplicate_decls): Ditto. Deal with DECL_DECLARED_STATIC and
1079 DECL_INTERFACE_KNOWN.
1080 (redeclaration_error_message): Fix checking for conflicting linkage.
1081 (define_function): Set DECL_INTERFACE_KNOWN.
1082 (grokfndecl): Function decls are PUBLIC until we are sure about
1083 their linkage. Set DECL_DECLARED_STATIC as needed.
1084 (start_function): Deal with linkage. Move pushdecl after linkage
1085 magic.
1086 (finish_function): Don't set TREE_ASM_WRITTEN on discarded inlines.
1087 * cp-tree.h (lang_decl_flags): Add interface_known and
1088 declared_static.
1089 (DECL_INTERFACE_KNOWN): New macro.
1090 (DECL_DECLARED_STATIC): New macro.
1091 (DECL_PUBLIC): New macro.
1092
1093 Clean up bogus use of TREE_PUBLIC.
1094 * class.c (alter_access): Fix mistaken use of TREE_PUBLIC (it
1095 doesn't correspond to TREE_PROTECTED and TREE_PRIVATE).
1096 * init.c (do_friend): Don't arbitrarily set TREE_PUBLIC.
cba8ba35
JM
1097
1098Wed Oct 5 13:44:41 1994 Jason Merrill (jason@phydeaux.cygnus.com)
1099
db5ae43f
MS
1100 * call.c (build_overload_call_real): Don't immediately do
1101 array->pointer conversion.
cba8ba35 1102
db5ae43f
MS
1103 * pt.c (type_unification): If not passing to a reference, strip
1104 cv-quals. Also handle array->pointer conversion.
cba8ba35
JM
1105
1106Tue Oct 4 17:45:37 1994 Jason Merrill (jason@phydeaux.cygnus.com)
1107
db5ae43f
MS
1108 * decl.c (grokdeclarator): Don't warn about applying const to a
1109 const typedef or template type parameter.
1110
1111 * decl2.c (finish_file): Also synthesize methods after walking the
1112 vtables. Ugly ugly ugly.
cba8ba35
JM
1113
1114Mon Oct 3 15:02:41 1994 Jason Merrill (jason@phydeaux.cygnus.com)
1115
db5ae43f
MS
1116 * various: Remove lingering remnants of old exception handling code.
1117
1118 * decl2.c (finish_file): Synthesize methods before walking the
1119 vtables, so that the vtables get emitted as needed.
1120
1121 * decl.c (shadow_tag): Remove obsolete code for pushing tags and
1122 dealing with exceptions.
1123
1124Mon Oct 3 13:05:27 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
1125
1126 * Make-lang.in (g++-cross): Depend upon version.o and $(LIBDEPS).
1127
1128Mon Oct 3 02:59:28 1994 Jason Merrill (jason@phydeaux.cygnus.com)
1129
1130 * decl2.c (finish_file): Fix inline handling.
cba8ba35
JM
1131
1132Sun Oct 2 00:21:56 1994 Jason Merrill (jason@phydeaux.cygnus.com)
1133
db5ae43f
MS
1134 * decl.c (grokdeclarator): Handle redundant scope even better.
1135 ({push,pop}_cp_function_context): Take toplev parameter.
cba8ba35 1136
db5ae43f
MS
1137 * method.c (synthesize_method): Pass toplev parameter to
1138 {push,pop}_cp_function_context depending on decl_function_context
1139 (fndecl).
cba8ba35 1140
db5ae43f
MS
1141 * typeck.c (build_x_unary_op): Unary & on OFFSET_REFs is always the
1142 built-in version.
cba8ba35 1143
db5ae43f
MS
1144 * method.c (synthesize_method): Don't be confused by __in_chrg
1145 parameter.
b3738072 1146
db5ae43f 1147 * class.c (popclass): Set C_C_D like start_function does.
b3738072 1148
db5ae43f 1149 * decl.c (grokdeclarator): Handle redundant scope better.
81613e43 1150
db5ae43f
MS
1151 * parse.y (expr_or_declarator): Add '(' expr_or_declarator ')' rule.
1152 (direct_notype_declarator): Ditto.
1153 (complex_direct_notype_declarator): Remove it here.
81613e43 1154
db5ae43f 1155Sat Oct 1 21:42:18 1994 Jason Merrill (jason@deneb.cygnus.com)
44c5421f 1156
db5ae43f
MS
1157 * init.c (resolve_offset_ref): Fix types used in resolving .*
1158 expressions.
1159
1160Sat Oct 1 15:18:49 1994 Jason Merrill (jason@phydeaux.cygnus.com)
1161
1162 Beginnings of work to synthesize methods only when needed.
1163 * call.c (build_method_call): Synthesize methods as necessary
1164 (currently never necessary).
1165 * class.c (popclass): Don't try to set C_C_D here, as it'll end up
1166 on the wrong obstack.
1167 * decl.c (push_cp_function_context): Mostly copied from
1168 push_c_function_context.
1169 (pop_cp_function_context): Similarly.
1170 (finish_function): Reverse order of poplevel and pop_nested_class so
1171 that current_class_decl is restored properly.
1172 (start_function): Ditto.
1173 (finish_function): Add parameter 'nested'. Don't call
1174 permanent_allocation if (nested).
1175 * various: Pass extra parameter to finish_function.
1176 * decl2.c (finish_file): Reorganize end-of-file inline handling,
1177 synthesizing methods as necessary.
1178 * lex.c (cons_up_default_function): Call mark_inline_for_output.
1179 Only synthesize methods immediately if #pragma implementation
1180 (currently disabled).
1181 (do_pending_inlines): Call synthesize_method.
1182 * method.c (synthesize_method): New function; all method synthesis
1183 goes through here. Calls do_build_assign_ref and
1184 do_build_copy_constructor.
1185 (build_default_constructor): Remove.
1186 (build_dtor): Ditto.
1187 (build_assign_ref): Rename to do_build_assign_ref and remove stuff
1188 done by synthesize_method.
1189 (build_copy_constructor): Similarly.
44c5421f 1190
eac293a1
MS
1191Thu Sep 29 16:58:52 1994 Mike Stump <mrs@cygnus.com>
1192
1193 * typeck.c (c_expand_return): Use magic so the backend can fixup the
1194 assignment into the return register, so cleanups won't clobber it.
1195
1196Thu Sep 29 13:08:50 1994 Jason Merrill (jason@deneb.cygnus.com)
1197
1198 * method.c (hack_identifier): Don't call assemble_external for
1199 template decls.
1200
1201 * decl.c (finish_decl): Also end temporary allocation if the decl in
1202 question has a type of error_mark_node.
1203
6060a796 1204Wed Sep 28 21:45:00 1994 Mike Stump <mrs@cygnus.com>
eac293a1
MS
1205
1206 * typeck.c (build_modify_expr): When optimizing ?: on lhs, make sure
1207 that if the ?: was a reference type, that the subparts will be also.
1208
1209Wed Sep 28 16:14:04 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
1210
1211 * except.c (register_exception_table): Use Pmode, not PTRmode.
1212
1213Fri Sep 23 13:54:27 1994 Jason Merrill (jason@deneb.cygnus.com)
1214
1215 * lex.c (do_pending_inlines): Do method synthesis after the
1216 pending_inlines have been reversed.
1217
f376e137
MS
1218Thu Sep 22 12:53:03 1994 Per Bothner (bothner@kalessin.cygnus.com)
1219
1220 * decl2.c (finish_file): Fix Brendan's fix: Only call
1221 register_exception_table if there is a non-empty exception table.
1222
1223Thu Sep 22 12:03:46 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
1224
1225 * decl2.c (finish_file): Only do register_exception_table if
1226 -fhandle-exceptions is being used.
1227
1228Wed Sep 21 19:01:51 1994 Per Bothner (bothner@kalessin.cygnus.com)
1229
1230 * except.c (output_exception_table_entry): Simplify
1231 by using assemble_integer.
1232 (build_exception_table): Change to return a count.
1233 Cleanup to use standard macros, instead of hard-wired
1234 sparc asm format. Don't make __EXCEPTION_TABLE__ global.
1235 (register_exception_table): New function. Generate call to builtin.
1236 * decl2.c (finish_file): Call register_exception_table.
1237 * cp-tree.h (build_exception_table): Fix prototype.
1238
1239Wed Sep 21 13:20:42 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
1240
1241 * tree.c (break_out_calls): Don't try to duplicate the DECL_INITIAL.
1242
1243 * decl2.c (delete_sanity): Give an error at trying to delete a
1244 function.
1245
1246Wed Sep 21 11:47:10 1994 Jason Merrill (jason@deneb.cygnus.com)
1247
1248 * lex.c (cons_up_default_function): Mark synthesized destructors
1249 inline.
1250
1251 * decl.c (duplicate_decls): Ignore redeclarations of wchar_t as
1252 something other than __wchar_t, complaining if -pedantic and not in
1253 a system header.
1254
1255Tue Sep 20 09:43:28 1994 Jason Merrill (jason@deneb.cygnus.com)
1256
1257 * decl.c (xref_tag): Set up BINFO_INHERITANCE_CHAIN on base binfos
1258 here.
1259
1260 * typeck.c (build_modify_expr): Require complete type after checking
1261 for error_mark_node.
1262
1263 * call.c (build_method_call): Print parmtypes when complaining of
1264 ambiguous call.
1265
1266 * typeck.c (build_modify_expr): Handle assignment to array from
1267 non-array.
1268
1269 * decl.c (lookup_name_real): Deal with got_scope == error_mark_node.
1270
1271 * call.c (build_method_call): Don't bother with the exact match.
1272
1273Mon Sep 19 00:51:39 1994 Jason Merrill (jason@deneb.cygnus.com)
1274
1275 * init.c (expand_aggr_init): If we munge the type of the variable,
1276 also munge the type of the initializer.
1277
1278 * decl.c (grokdeclarator): Use <= when comparing to RID_LAST_MODIFIER.
1279 (init_decl_processing): Push artificial declaration of wchar_t so
1280 people don't have to declare it before they can use it.
1281
1282 * error.c (cp_line_of): return lineno in lieu of 0.
1283
1284 * typeck.c (convert_for_assignment): Handle conversion of pmfs to
1285 int and bool.
1286 (build_component_ref): Fold the COMPONENT_REF in case it can be
1287 reduced.
1288
1289 * typeck2.c (store_init_value): Don't pedwarn about non-constant
1290 bracketed initializers for automatic variables.
1291
1292Sun Sep 18 10:12:12 1994 Jason Merrill (jason@deneb.cygnus.com)
1293
1294 * error.c (dump_decl): Don't say `typedef enum foo foo'.
1295
1296 * decl.c (start_decl): Don't set TREE_PUBLIC on template decls just
1297 because they're affected by #pragma i/i. We'll deal with that when
1298 they get instantiated.
1299
1300 * typeck.c (build_unary_op): Clean up cruft in ADDR_EXPR case.
1301
1302 * class.c (instantiate_type): Set TREE_CONSTANT on instantiated
1303 ADDR_EXPRs if appropriate.
1304
1305 * decl.c (build_ptrmemfunc_type): Unset IS_AGGR_TYPE on pmf types.
1306
1307 * typeck.c (build_ptrmemfunc): Handle &overloaded_method as an
1308 initializer properly.
1309 * typeck2.c (digest_init): Ditto.
1310
1311 * tree.c (cp_build_type_variant): Like c_build_type_variant, except
1312 it uses build_cplus_array_type.
1313 * *.c: Use cp_build_type_variant instead of c_build_type_variant.
1314
1315 * pt.c (do_type_instantiation): Don't try to instantiate nested
db5ae43f 1316 enums.
f376e137
MS
1317
1318Tue Sep 13 10:56:58 1994 Jason Merrill (jason@deneb.cygnus.com)
1319
1320 * cvt.c (build_up_reference): Handle preincrement and predecrement
db5ae43f 1321 properly.
f376e137
MS
1322
1323Tue Sep 13 09:51:59 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
1324
1325 * decl.c (finish_decl): Only lay out the rtl for DECL if it is, in
1326 fact, static.
1327
1328Mon Sep 12 14:40:30 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
1329
1330 * decl.c (finish_decl): Lay out the rtl for DECL before doing
1331 grok_reference_init, in case it's static.
1332
1333Mon Sep 12 12:45:38 1994 Jason Merrill (jason@deneb.cygnus.com)
1334
1335 * class.c (finish_struct): Don't synthesize constructors if the
1336 class has a field with the same name as the class. Don't die on
1337 classes with no constructors or destructors. Don't die if the head
1338 and tail of the class are in different files.
1339
1340 * decl.c (grokdeclarator): Don't treat a function pointer field
1341 with the same name as the class as a constructor.
1342
1343Fri Sep 9 13:17:00 1994 Jason Merrill (jason@deneb.cygnus.com)
1344
1345 * typeck.c (build_c_cast): Pull constant values out of their
1346 variables here.
1347
1348 * decl.c (duplicate_decls): Only propagate DECL_CHAIN in
1349 FUNCTION_DECLs and TEMPLATE_DECLs.
1350
1351Thu Sep 8 10:07:48 1994 Jason Merrill (jason@deneb.cygnus.com)
1352
1353 * decl.c (duplicate_decls): Propagate DECL_CHAIN in all DECLs that
1354 have it.
1355
1356 * pt.c (unify): REALs and INTEGERs only unify with their own genus.
1357 (instantiate_member_templates): Don't muck with DECL_EXTERNAL and
1358 TREE_PUBLIC unless -fexternal-templates.
1359
1360Wed Sep 7 13:17:10 1994 Jason Merrill (jason@deneb.cygnus.com)
1361
1362 * pt.c (do_type_instantiation): Call instantiate_member_templates.
1363 Deal with specializations.
1364 (tsubst): Don't stick the mangled name in DECL_NAME for function
1365 instantiations. Don't push them, either.
1366
1367 * decl2.c (grokfield): Move code for generating the
1368 DECL_ASSEMBLER_NAME for static members from here.
1369 * method.c (build_static_name): To here.
1370 * decl.c (grokvardecl): Call build_static_name.
1371 (duplicate_decls): Keep old DECL_ASSEMBLER_NAME.
1372
1373Mon Sep 5 12:49:18 1994 Jason Merrill (jason@deneb.cygnus.com)
1374
1375 * call.c (build_method_call): if -Wsynth, warn when selecting
1376 synthesized op= over user-supplied one cfront would select.
1377 * decl2.c (lang_decode_option): Handle -Wsynth.
1378
1379Fri Sep 2 15:11:59 1994 Jason Merrill (jason@deneb.cygnus.com)
1380
1381 * decl.c (finish_enum): Overhaul to fix several bugs.
1382 (start_enum): Disable useless code.
1383
1384Thu Sep 1 16:04:54 1994 Jason Merrill (jason@deneb.cygnus.com)
1385
1386 * typeck.c (c_expand_return): Warn about returning a reference to a
1387 temporary.
1388 (convert_arguments): Increment argument counter when using default
1389 arguments, too.
1390
1391Wed Aug 31 14:29:22 1994 Jason Merrill (jason@deneb.cygnus.com)
1392
1393 * decl.c (finish_decl): If the type of decl is error_mark_node,
1394 don't bother trying to do anything.
1395
1396 * typeck.c (convert_for_initialization): If the rhs contains a
1397 constructor call, pretend the lhs type needs to be constructed.
1398
1399 * init.c (expand_default_init): If we stick the object inside the
1400 initializer, mark the initializer used.
1401
1402Tue Aug 30 13:50:18 1994 Jason Merrill (jason@deneb.cygnus.com)
1403
1404 * method.c (build_assign_ref): return *this;
1405 (build_assign_ref): Fix base assignment order.
1406 (build_copy_constructor): Fix member init order.
1407
1408Mon Aug 29 13:54:39 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
1409
1410 * g++.c (main): Remember to clear out SAW_SPECLANG after we see
1411 its argument.
1412
1413Sat Aug 27 09:36:03 1994 Jason Merrill (jason@deneb.cygnus.com)
1414
1415 * method.c (build_copy_constructor): Also copy virtual bases.
1416
1417Fri Aug 26 17:05:15 1994 Jason Merrill (jason@deneb.cygnus.com)
1418
1419 * lex.c (do_pending_inlines): Clear out pending_inlines before doing
1420 any synthesis. Also first set deja_vu on all pending_inlines.
1421
1422 * method.c (build_assign_ref): Use build_member_call to invoke base
1423 operator=, rather than build_modify_expr. And use
1424 build_reference_type instead of TYPE_REFERENCE_TO.
1425 (build_copy_constructor): Use TYPE_NESTED_NAME to identify the
1426 basetype.
1427
1428 * decl2.c (grokfield): Don't complain about undefined local class
1429 methods.
1430
1431 * class.c (finish_struct): Don't try to synthesize methods here.
1432 * lex.c (do_pending_inlines): Instead, synthesize them here.
1433 (init_lex): Initialize synth_obstack.
1434 (cons_up_default_function): Stick synthesis request on
1435 pending_inlines.
1436
1437Fri Aug 26 12:24:14 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
1438
1439 * call.c (build_method_call) [PCC_STATIC_STRUCT_RETURN]: Also
1440 accept an RTL_EXPR in what we're about to use for the instance,
1441 since anything which would end up with pcc_struct_return set
1442 inside cplus_expand_expr.
1443
1444 * cp-tree.h (cons_up_default_function): Note change of prototype.
1445
1446Thu Aug 25 23:05:30 1994 Gerald Baumgartner (gb@cs.purdue.edu)
1447
1448 * class.c (finish_struct): Undid change from Aug 21 testing
1449 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
1450 * parse.y (left_curly): Ditto, undid change from Aug 21.
1451 * decl.c (xref_tag): Undid change from Aug 21, set
1452 CLASSTYPE_INTERFACE correctly, and added comments.
1453
1454Thu Aug 25 00:36:31 1994 Jason Merrill (jason@deneb.cygnus.com)
1455
1456 Rework approach to synthesized methods; don't go through the parser
1457 anymore.
1458 * class.c (finish_struct): Use new synthesis approach.
1459 * lex.c (cons_up_default_function): Now just creates declaration,
1460 not code.
1461 (largest_union_member): #if 0 out.
1462 (default_assign_ref_body): Ditto.
1463 (default_copy_constructor_body): Ditto.
1464 * method.c (build_default_constructor): New function to synthesize X().
1465 (build_copy_constructor): Synthesize X(X&).
1466 (build_assign_ref): Synthesize X::operator=(X&).
1467 (build_dtor): Synthesize ~X().
1468
1469 * error.c (cp_line_of): If we're dealing with an artificial
1470 TYPE_DECL, look at the type instead.
1471
1472Wed Aug 24 11:11:50 1994 Jason Merrill (jason@deneb.cygnus.com)
1473
1474 * init.c (sort_member_init): Check warn_reorder.
1475 * decl2.c (lang_decode_option): Handle -W{no-,}reorder.
1476
1477 * cp-tree.h (CLASSTYPE_SOURCE_LINE): New macro.
1478 * error.c (cp_line_of): Use CLASSTYPE_SOURCE_LINE for aggregates.
1479 * class.c (finish_struct): Set CLASSTYPE_SOURCE_LINE.
1480
6060a796 1481Tue Aug 23 09:28:35 1994 Mike Stump <mrs@cygnus.com>
f376e137
MS
1482
1483 * error.c (dump_decl): Improve wording, so that error messages
1484 dont't read template<, class foo>...
1485
1486Mon Aug 22 15:30:51 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
1487
1488 * parse.y (label_colon): Also match a TYPENAME as a label name,
1489 since they may have declared a class by that name but have also
1490 tried to have a local label under the same name.
1491
1492 * pt.c (coerce_template_parms): Call cp_error, not cp_error_at,
1493 for the message so they know at what point it was instantiated.
1494
1495Sun Aug 21 23:07:35 1994 Gerald Baumgartner (gb@cs.purdue.edu)
1496
1497 * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
1498 CLASSTYPE_VTABLE_NEEDS_WRITING for signatures up to left_curly time.
1499 * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
db5ae43f 1500 CLASSTYPE_VTABLE_NEEDS_WRITING for signatures down to left_curly time.
f376e137
MS
1501 * parse.y (left_curly): New final resting place for setting
1502 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING for signatures.
1503
1504 * class.c (finish_struct): Don't test for function/field name
1505 conflicts in signatures, since all the fields are compiler-constructed.
1506
1507Fri Aug 19 14:04:47 1994 Kung Hsu (kung@mexican.cygnus.com)
1508
1509 * method.c (build_overload_nested_name): in qualified name
1510 mangling, the template with value instantiation will have numeric
1511 at end and may mixed with the name length of next nested level.
1512 Add a '_' in between.
1513 * method.c (build_overload_name): ditto.
1514 * method.c (build_overload_identifier): ditto.
1515
6060a796 1516Thu Aug 18 16:24:43 1994 Mike Stump <mrs@cygnus.com>
f376e137
MS
1517
1518 * error.c (dump_decl): Handle NULL args.
1519
db5ae43f
MS
1520Thu Sep 29 16:15:36 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
1521
1522 * g++.c: Rework last change so it's done like collect.c (and
1523 gcc.c).
1524
1525Wed Sep 14 10:17:27 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
1526
1527 * g++.c: Include <sys/errno.h> in case `errno' is a macro
1528 as permitted by ANSI C.
1529
6060a796 1530Thu Aug 18 12:48:09 1994 Mike Stump <mrs@cygnus.com>
00595019
MS
1531
1532 * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
1533 CLASSTYPE_VTABLE_NEEDS_WRITING up to left_curly time.
1534 * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
db5ae43f 1535 CLASSTYPE_VTABLE_NEEDS_WRITING down to left_curly time.
00595019
MS
1536 * parse.y (left_curly): New final resting place for setting
1537 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
1538
1539Thu Aug 11 11:32:42 1994 H.J. Lu (hjl@nynexst.com)
1540
1541 * g++.c (main): Only decrement "added" and set "library" to
1542 NULL when "library" != NULL.
1543
1544Sat Aug 13 00:14:52 1994 Jason Merrill (jason@deneb.cygnus.com)
1545
1546 * decl.c (grokdeclarator): Don't set TREE_PUBLIC on a function decl
1547 just because its class has a known interface.
1548 (decls_match): Deal with new format of template parms.
1549
1550 * lex.c (cons_up_default_function): Don't play with TREE_PUBLIC and
1551 DECL_EXTERNAL here.
1552
1553Fri Aug 12 01:55:15 1994 Jason Merrill (jason@deneb.cygnus.com)
1554
1555 * decl.c (pushtag): SET_DECL_ARTIFICIAL on gratuitous typedefs.
1556 (xref_defn_tag): Ditto.
1557 (pushdecl): Only allow artificial typedefs to be shadowed.
1558
1559 * init.c (emit_base_init): Pass the right binfos to
1560 expand_aggr_init_1.
1561
1562 * class.c (delete_duplicate_fields_1): Make it work right.
1563 (finish_struct): Catch function/field name conflict.
1564
1565 * decl2.c (check_classfn): Pass the function to cp_error, not just
1566 the name.
1567
1568 * init.c (sort_member_init): Warn when order of member initializers
1569 does not match order of member declarations.
1570 (emit_base_init): Call expand_aggr_init_1 with LOOKUP_PROTECT.
1571
1572 * error.c (dump_expr): Handle lists of functions.
1573
1574 * decl.c (start_function): #pragma interface only affects functions
1575 that would otherwise be static.
1576 (finish_decl): Don't warn about an unused variable if it has both
1577 constructor and destructor, since the 'resource allocation is
1578 initialization' idiom is relatively common.
1579
1580 * typeck.c (comp_target_types): Don't handle TEMPLATE_TYPE_PARMs.
1581 (comp_target_parms): Ditto.
1582 (compparms): Never consider default parms.
1583 (common_base_type): Don't choose a virtual baseclass if there is a
1584 more derived class in common.
1585 (build_conditional_expr): If pedantic, pedwarn about conversion to
1586 common base in conditional expr.
1587
1588 * class.c (instantiate_type): Handle template instantiation better.
1589
1590 * typeck.c (convert_arguments): Don't try to get tricky and convert
1591 to int directly when PROMOTE_PROTOTYPES is set, as it breaks
1592 user-defined conversions.
1593
1594 * lex.c (check_for_missing_semicolon): Also give error at end of
1595 file.
1596
1597 * call.c (build_method_call): Don't promote arrays to pointers here.
1598
1599 * typeck.c (convert_arguments): Don't require the actual parameter
1600 to be of a complete type if the formal parameter is a reference.
1601
1602Thu Aug 11 15:21:40 1994 Jason Merrill (jason@deneb.cygnus.com)
1603
1604 * decl.c (grokdeclarator): Soften 'static' on member function error
1605 to pedwarn.
1606
1607 * init.c (build_new): Don't automatically save rval.
1608 (build_offset_ref): Do field lookup with proper basetype_path.
1609
1610Thu Aug 11 12:46:54 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
1611
1612 * errfn.c (cp_silent): Declare to mark when we should avoid
1613 emitting warnings and errors.
1614 (cp_error): Check it.
1615 (cp_warning): Likewise.
1616 (cp_pedwarn): Likewise.
1617 (cp_compiler_error): Likewise.
1618 (cp_error_at): Likewise.
1619 (cp_warning_at): Likewise.
1620 (cp_pedwarn_at): Likewise.
1621 * call.c (compute_conversion_costs): Set CP_SILENT when we start
1622 out, and make sure we turn it off before we leave.
1623
1624Thu Aug 11 00:02:54 1994 Jason Merrill (jason@deneb.cygnus.com)
1625
1626 * decl2.c (grok_array_decl): Try computing *(A+B) if neither
1627 argument is obviously an array.
1628
1629Wed Aug 10 15:32:04 1994 Jason Merrill (jason@deneb.cygnus.com)
1630
1631 * typeck.c (c_expand_start_case): Do cleanups here.
1632
1633 * parse.y (xcond): Do bool conversion here, too.
1634 (simple_stmt, SWITCH case): Don't do cleanups here.
1635
1636 * decl.c (duplicate_decls): Don't treat builtins that have been
1637 explicitly declared specially.
1638
1639Tue Aug 9 01:16:09 1994 Jason Merrill (jason@deneb.cygnus.com)
1640
1641 * tree.c (make_deep_copy): Support copying pointer, reference,
1642 function, array, offset and method types.
1643
1644 * decl.c (init_decl_processing): Mark exit and abort as
1645 BUILT_IN_NONANSI so that duplicate_decls is kinder about
1646 redeclaration.
1647 (duplicate_decls): Don't give two errors for redeclaring a C
1648 function with the same parms but a different return type.
1649
1650 * parse.y (paren_cond_or_null): Do cleanup and bool conversion here.
1651 (condition): Instead of here.
1652 (simple_stmt, SWITCH case): Also do cleanup here.
1653
1654 * decl2.c (finish_anon_union): Only break out FIELD_DECLs.
1655
1656 * call.c (build_method_call): Don't throw away the side effects of
1657 the object in a call to a non-existent constructor.
1658 * parse.y (primary): Ditto.
1659
1660 * method.c (build_decl_overload): Oop.
1661
1662 * decl2.c (lang_decode_option): Deal with flag_no_nonansi_builtin,
1663 warn about uselessness of specifying -fansi-overloading.
1664
1665 * method.c (build_decl_overload): Treat any non-member new with one
1666 parameter as __builtin_new.
1667
1668 * decl.c (init_decl_processing): Setup built-in meanings of exit,
1669 _exit and abort.
1670
1671Mon Aug 8 15:03:30 1994 Jason Merrill (jason@deneb.cygnus.com)
1672
1673 * error.c (dump_readonly_or_volatile): Put a space between const and
1674 volatile if both apply.
1675
1676 * init.c (perform_member_init): Clean up after this initialization.
1677 (emit_base_init): Clean up after each base init, not after all have
1678 been done.
1679 (expand_aggr_vbase_init_1): Clean up after this init.
1680
1681Sun Aug 7 14:55:05 1994 Jason Merrill (jason@deneb.cygnus.com)
1682
1683 * call.c (build_method_call): Deal with destroying references.
1684
1685 * parse.y (condition): Do bool_truthvalue_conversion here.
1686 (paren_expr_or_null): And here.
1687 (simple_if): Not here.
1688 (simple_stmt): Or here.
1689
1690Sat Aug 6 22:29:45 1994 Jason Merrill (jason@deneb.cygnus.com)
1691
1692 * parse.y (paren_expr_or_null): Wrap the expression in a
1693 CLEANUP_POINT_EXPR.
1694 (condition): Ditto.
1695
1696Sat Aug 6 19:46:37 1994 Rohan Lenard (rjl@easams.com.au)
1697
1698 * call.c (build_scoped_method_call): Fix error message when
1699 destructor call refers to a nonexistent type.
1700
1701Sat Apr 16 22:43:30 1993 Gerald Baumgartner (gb@cs.purdue.edu)
1702
1703 * lex.h (rid): Deleted RID_RAISES, it's never used.
1704 Moved RID_PUBLIC, RID_PRIVATE, RID_PROTECTED, RID_EXCEPTION,
1705 RID_TEMPLATE and RID_SIGNATURE to the end of the enumeration,
1706 they don't need to be touched in `grokdeclarator.'
1707 (RID_LAST_MODIFIER): Defined macro to be RID_MUTABLE.
1708
1709 * decl.c (grokdeclarator): Use RID_LAST_MODIFIER instead of
1710 RID_MAX as loop limit for finding declaration specifiers.
1711
1712Sat Apr 3 21:59:07 1993 Gerald Baumgartner (gb@cs.purdue.edu)
1713
1714 * lex.c (debug_yytranslate): Moved to parse.y since it needs to
1715 access `yytname,' which is static in parse.c.
1716
1717Fri Apr 2 23:36:57 1993 Gerald Baumgarnter (gb@cs.purdue.edu)
1718
1719 * cp-tree.h (GNU_xref_ref): Fixed typo in extern declaration, it
1720 was `GNU_xref_def' instead of `GNU_xref_ref.'
1721
1722Fri Aug 5 14:20:16 1994 Jason Merrill (jason@deneb.cygnus.com)
1723
1724 * pt.c (do_function_instantiation): Don't set TREE_PUBLIC and
1725 DECL_EXTERNAL on 'extern' instantiations; wait until EOF to do that.
1726 (do_type_instantiation): Ditto.
1727
1728 * decl2.c (import_export_inline): Decides at EOF what an inline's
1729 linkage should be.
1730 (finish_file): Call it.
1731
1732 * decl.c (start_function): Don't rely on the settings of TREE_PUBLIC
1733 and DECL_EXTERNAL from do_*_instantiation. Only set
1734 DECL_DEFER_OUTPUT on inlines whose linkage might actually change.
1735 (finish_function): Use DECL_DEFER_OUTPUT to decide which inlines to
1736 mark for later consideration, rather than DECL_FUNCTION_MEMBER_P.
1737
6060a796 1738Fri Aug 5 01:12:20 1994 Mike Stump <mrs@cygnus.com>
a292b002
MS
1739
1740 * class.c (get_class_offset_1, get_class_offset): New routine to
1741 find the offset of the class where a virtual function is defined,
1742 from the complete type.
1743 * class.c (modify_one_vtable, fixup_vtable_deltas): Use
1744 get_class_offset instead of virtual_offset as get_class_offset will
1745 always provide the right answer.
1746 * tree.c (virtual_offset): Remove. It only ever worked some of the
1747 time.
1748
1749Tue Aug 2 12:44:21 1994 Jason Merrill (jason@deneb.cygnus.com)
1750
1751 * call.c (build_method_call): Put back unary_complex_lvalue call
1752 that I thought was redundant.
1753
1754 * typeck.c (c_expand_return): Fix a case I missed before.
1755
1756Sun Jul 31 17:54:02 1994 Jason Merrill (jason@deneb.cygnus.com)
1757
1758 * pt.c (unify): Strip cv-quals from template type arguments (when
1759 'const T*' is matched to 'const char*', that does not mean that T is
1760 'const char').
1761
1762Fri Jul 29 01:03:06 1994 Jason Merrill (jason@deneb.cygnus.com)
1763
1764 * pt.c (do_type_instantiation): Instantiate nested TAGS, not
1765 typedefs. Third time's the charm?
1766
1767 * parse.y (template_parm): Support default template parms.
1768 * pt.c (process_template_parm): Ditto.
1769 (end_template_parm_list): Ditto.
1770 (coerce_template_parms): Ditto.
1771 (mangle_class_name_for_template): Ditto.
1772 (push_template_decls): Ditto.
1773 (unify): Ditto.
1774 * method.c (build_overload_identifier): Ditto.
1775 * error.c (dump_decl): Ditto.
1776
1777Wed Jul 27 17:47:00 1994 Jason Merrill (jason@deneb.cygnus.com)
1778
1779 * pt.c (do_type_instantiation): Only instantiate nested *classes*.
1780
1781Tue Jul 26 13:22:40 1994 Jason Merrill (jason@deneb.cygnus.com)
1782
1783 * search.c (note_debug_info_needed): Also emit debugging information
1784 for the types of fields.
1785
1786Mon Jul 25 00:34:44 1994 Jason Merrill (jason@deneb.cygnus.com)
1787
1788 * pt.c (lookup_template_class): Pass 'template' to
1789 coerce_template_parms instead of 'in_decl', since it's a more
1790 meaningful context.
1791
1792 * typeck.c (c_expand_return): Make sure any cleanups for the return
1793 expression get run.
1794 (build_c_cast): Use CONVERT_EXPR for conversion to void.
1795
1796 * pt.c (do_type_instantiation): Also instantiate nested types.
1797
1798 * typeck.c (convert_for_assignment): Don't die when comparing
1799 pointers with different levels of indirection.
1800
1801 * decl.c (grokdeclarator): The sub-call to grokdeclarator for
1802 class-local typedefs sets DECL_ARGUMENTS, so we need to clear it
1803 out.
1804
1805 * decl2.c (finish_anon_union): Don't die if the union has no
1806 members.
1807
1808 * decl.c (grokdeclarator): Undo changes to declspecs when we're done
1809 so that 'typedef int foo, bar;' will work.
1810
1811 * decl2.c (finish_file): Don't call expand_aggr_init for
1812 non-aggregates.
1813
1814Mon Jul 25 00:03:10 1994 Teemu Torma (tot@trema.fi)
1815
1816 * decl.c (finish_function): We can't inline constructors and
1817 destructors under some conditions with -fpic, but don't unset
1818 DECL_INLINE.
1819
1820Mon Jul 25 00:03:10 1994 Jason Merrill (jason@deneb.cygnus.com)
1821
1822 * typeck.c (build_object_ref): Make sure 'datum' is a valid object.
1823
1824Sun Jul 24 14:19:31 1994 Jason Merrill (jason@deneb.cygnus.com)
1825
1826 * class.c (finish_struct): Don't set DECL_FIELD_BITPOS on
1827 non-fields.
1828 (finish_struct_methods): Use copy_assignment_arg_p.
1829
1830 * cvt.c (cp_convert): If expr is an OFFSET_REF, resolve it instead
1831 of giving an error.
1832
1833 * typeck.c (build_binary_op_nodefault): Don't set result_type if we
1834 don't know how to compare the operands.
1835
1836 * decl.c (grokdeclarator): Avoid seg fault when someone uses '__op'
1837 as a declarator-id in their program. Like the Linux headers do.
1838 Arrgh.
1839
1840 * tree.c (lvalue_p): Treat calls to functions returning objects by
1841 value as lvalues again.
1842
1843 * typeck.c (build_component_addr): Use convert_force to convert the
1844 pointer in case the component type is also a private base class.
1845
1846 * search.c (get_matching_virtual): Fix bogus warning of overloaded
1847 virtual.
1848
1849 * pt.c (overload_template_name): Set DECL_ARTIFICIAL on the created
1850 TYPE_DECL to fix bogus shadowing warnings.
1851
1852Fri Jul 22 01:15:32 1994 Jason Merrill (jason@deneb.cygnus.com)
1853
1854 * init.c (expand_aggr_init_1): const and volatile mismatches do not
1855 prevent a TARGET_EXPR from initializing an object directly.
1856
1857Tue Jul 19 17:55:37 1994 Jason Merrill (jason@deneb.cygnus.com)
1858
1859 * cvt.c (build_up_reference): Allow building up references to
1860 `this', don't warn about making references to artificial variables
1861 (like `this').
1862
1863 * tree.c (lvalue_p): `this' is not an lvalue.
1864
1865 * call.c (build_method_call): Accept using a typedef name (or
1866 template type parameter) for explicit destructor calls.
1867
cf17cae3
JM
1868Wed Jul 13 03:57:54 1994 Jason Merrill (jason@deneb.cygnus.com)
1869
a292b002
MS
1870 * method.c (hack_identifier): Put back old code so lists of
1871 non-functions will be handled properly.
a5ef9010 1872
a292b002
MS
1873 * cp-tree.h (TYPE_NEEDS_CONSTRUCTING): #if 0 out; this macro is now
1874 defined in the language-independent tree.h.
cf17cae3 1875
a292b002
MS
1876 * tree.c (count_functions): Avoid bogus warning when compiling this
1877 function.
cf17cae3
JM
1878
1879Mon Jul 11 18:37:20 1994 Jason Merrill (jason@deneb.cygnus.com)
1880
a292b002
MS
1881 * decl.c (grok_reference_init): Always save the initializer of a
1882 reference.
cf17cae3 1883
6060a796 1884Fri Jul 8 17:41:46 1994 Mike Stump <mrs@cygnus.com>
5b605f68
MS
1885
1886 * decl.c (cplus_expand_expr_stmt): Wrap statement expressions inside
1887 CLEANUP_POINT_EXPRs so that the stack slots can be reused.
63c68bb7 1888 (disabled for now)
5b605f68
MS
1889
1890Fri Jul 8 12:59:38 1994 Jason Merrill (jason@deneb.cygnus.com)
1891
1892 * method.c (hack_identifier): Fix for new overloading.
1893
1894 * typeck.c (build_binary_op_nodefault): Don't mess with division by
db5ae43f 1895 zero.
5b605f68
MS
1896
1897Fri Jul 8 13:20:28 1994 Gerald Baumgartner (gb@cs.purdue.edu)
1898
1899 * decl2.c (finish_file): Only call walk_sigtables, if
1900 flag_handle_signatures is turned on, don't waste time otherwise.
1901
1902Fri Jul 8 02:27:41 1994 Jason Merrill (jason@deneb.cygnus.com)
1903
1904 * decl.c (push_overloaded_decl): Don't create overloads of one when
1905 shadowing a class type.
a292b002 1906 * typeck.c (build_x_function_call): Complain about overloads of one.
5b605f68
MS
1907
1908 * decl.c (grokdeclarator): Don't try to treat a char* as a tree.
1909 (grokdeclarator): Fix setting of TREE_STATIC.
1910 (start_decl): Clear DECL_IN_AGGR_P after calling duplicate_decls.
1911
311862c8
GB
1912Thu Jul 7 22:20:46 1994 Gerald Baumgartner (gb@andros.cygnus.com)
1913
1914 * cp-tree.h (walk_sigtables): Created extern declaration.
1915 * decl2.c (walk_sigtables): Created function, patterned after
1916 walk_vtables, even though we only need it to write out sigtables.
1917 (finish_sigtable_vardecl): Created function.
1918 (finish_vtable_vardecl): Changed 0 to NULL_PTR.
1919 (finish_file): Call walk_sigtables.
1920
1921 * sig.c (build_signature_table_constructor): Mark class member
1922 function pointed to from signature table entry as addressable.
1923
5b605f68
MS
1924Thu Jul 7 13:39:37 1994 Jason Merrill (jason@deneb.cygnus.com)
1925
1926 * decl.c (start_decl): Check new decl of static member variable
1927 against the declaration in the class here.
1928 (grokvardecl): Instead of here.
1929
1930 * class.c (prepare_fresh_vtable): Call import_export_vtable if not
1931 -fvtable-thunks.
1932 (build_vtable): Ditto.
1933
1934 * decl2.c (import_export_vtable): Move logic for deciding the
1935 interface of a template class from here.
1936 (import_export_template): To here.
1937 (finish_vtable_vardecl): Call import_export_template before
1938 import_export_vtable.
1939
6060a796 1940Wed Jul 6 20:25:48 1994 Mike Stump <mrs@cygnus.com>
a3b49ccd
MS
1941
1942 * except.c (init_exception_processing): Setup interim_eh_hook to
1943 call lang_interim_eh.
1944 * except.c (do_unwind): Propagate throw object value across
1945 stack unwinding.
1946 * except.c (saved_throw_value): Used to hold the value of the object
1947 being thrown. It is always a reference to the real value.
1948 * except.c (expand_start_catch_block): Add handling for the
1949 value of the exception object.
1950 * except.c (expand_start_catch_block): Add handler for the handler,
1951 so that throws inside the handler go to the outer block.
1952 * except.c (expand_end_catch_block): Ditto.
1953 * parse.y (handler_args): Use parm instead, as the other doesn't yet
1954 handle references correctly.
1955
1956Wed Jul 6 17:55:32 1994 Per Bothner (bothner@kalessin.cygnus.com)
1957
1958 * decl2.c (mark_vtable_entries): If -ftable-thunks, set the
1959 vtable entry properly to abort.
1960
5b605f68
MS
1961Tue Jul 5 14:07:54 1994 Jason Merrill (jason@deneb.cygnus.com)
1962
1963 * typeck.c (build_binary_op_nodefault): Downgrade division by zero
1964 errors to warnings.
1965
1966 * call.c (build_overload_call_real): Handle fnname being a list of
1967 functions.
1968 * typeck.c (build_x_function_call): Pass list of functions to
1969 build_overload_call, not just the name.
1970 * tree.c (count_functions): Complain when called for invalid
1971 argument.
1972
1973 * decl.c (grokdeclarator): Fix settings of TREE_STATIC, TREE_PUBLIC
1974 and DECL_EXTERNAL on static members and initialized const members.
1975 * decl2.c (grokfield): Reflect this change.
1976
9a0e77ba
JM
1977Fri Jul 1 09:35:51 1994 Jason Merrill (jason@deneb.cygnus.com)
1978
1979 * parse.y (init): ANSI C++ does not forbid { }.
1980
1981Thu Jun 30 00:35:22 1994 Jason Merrill (jason@deneb.cygnus.com)
1982
1983 * decl2.c (lang_decode_option): Set warn_nonvdtor along with -Wall.
1984 warn_nonvdtor defaults to off.
1985
1986 * class.c (instantiate_type): Use comptypes rather than relying on
1987 types to satisfy ==.
1988
1989 * decl.c (start_function): Set DECL_DEFER_OUTPUT on all inlines that
1990 might be static.
1991
1992 * tree.c (build_cplus_new): Never build WITH_CLEANUP_EXPRs.
1993
1994 * decl.c (grok_reference_init): Deal with ADDR_EXPRs of TARGET_EXPRs.
1995
1996 * cvt.c (cp_convert): Pass 0 to with_cleanup_p arg of
1997 build_cplus_new.
1998
1999Wed Jun 29 22:31:09 1994 Jason Merrill (jason@deneb.cygnus.com)
2000
2001 * decl2.c (finish_file): Maybe consider static inlines multiple
2002 times, in case they reference each other.
2003
63718c49
GB
2004Tue Jun 28 11:58:38 1994 Gerald Baumgartner (gb@cs.purdue.edu)
2005
2006 * class.c (finish_struct): Don't `cons_up_default_function's
2007 for signatures.
2008 (finish_struct): Handle an empty method_vec correctly.
2009
2010 * decl.c (grokdeclarator): Don't warn about a signature being
2011 empty in a signature pointer declaration if we only saw a
2012 forward declaration of the signature. Changed `warning's into
2013 `cp_warning's.
2014
2015 * sig.c (build_sigtable): Don't die if a null signature table
2016 constructor is returned.
2017 (build_signature_pointer_constructor): If the signature table
2018 constructor is null, the _sptr field is set to a null pointer
2019 and cast to the appropriate type. Make copies of all null
2020 pointers so that the type null_pointer_node doesn't get changed.
2021 (build_signature_table_constructor): Added comments.
2022
2023 * sig.c (build_signature_pointer_constructor): Complain if we
2024 try to assign to/initialize a signature pointer/reference of
2025 an undefined signature.
2026
2027Mon Jun 27 14:05:16 1994 Gerald Baumgartner (gb@cs.purdue.edu)
2028
2029 * typeck2.c (store_init_value): Don't be pedantic about
2030 non-constant initializers of signature tables/pointers/references.
2031
2032Fri Jun 24 16:49:41 1994 Gerald Baumgartner (gb@cs.purdue.edu)
2033
2034 * decl.c (grokdeclarator): If we are grokking an opaque typedef
2035 in a signature, don't complain about it begin static.
2036
6060a796 2037Wed Jun 29 16:44:45 1994 Mike Stump <mrs@cygnus.com>
21474714
MS
2038
2039 Fixes a problem of the this pointer being wrong in virtual calls to
2040 methods that are not overridden in more derived classes.
2041
2042 * class.c (fixup_vtable_delta): New routine. It will fixup the
2043 delta entries in vtables, wheever they need updating.
2044 * class.c (finish_struct): Call the new routine for all virtual
2045 bases, as they can have different offsets, than those used in base
2046 classes that we derive our vtable from.
2047
2048Tue Jun 28 23:49:28 1994 Jason Merrill (jason@deneb.cygnus.com)
2049
2050 * typeck.c (build_binary_op): Use the types before default
2051 conversions in the error message.
2052
2053 * *.c: Use c_build_type_variant instead of build_type_variant where
2054 the type might be an array.
2055
2056 * call.c (build_method_call): Call build_type_variant and
2057 build_reference_type in the right order.
2058 * decl.c (record_builtin_type): Ditto.
2059
2060Wed Jun 29 16:58:53 1994 Jason Merrill (jason@deneb.cygnus.com)
2061
2062 * call.c (build_method_call): Call build_type_variant and
2063 build_reference_type in the right order.
2064 * decl.c (record_builtin_type): Ditto.
2065
2066Tue Jun 28 23:49:28 1994 Jason Merrill (jason@deneb.cygnus.com)
2067
2068 * typeck.c (build_binary_op): Use the types before default
2069 conversions in the error message.
2070
2071 * *.c: Use c_build_type_variant instead of build_type_variant where
2072 the type might be an array.
2073
2074Sat Jun 25 11:50:54 1994 Jason Merrill (jason@deneb.cygnus.com)
2075
2076 * cvt.c (convert_to_reference): Try UDC's before doing the
2077 reinterpret_cast thang, though.
2078
2079Fri Jun 24 01:24:01 1994 Jason Merrill (jason@deneb.cygnus.com)
2080
2081 * typeck.c (c_expand_return): Don't USE the return value location
2082 after we've expanded the jump.
2083
2084 * decl2.c (finish_file): Make sure DECL_SAVED_INSNS is not 0 before
2085 trying to write out an inline.
2086
2087 * cvt.c (build_up_reference): Also do address adjustment when the
2088 target type uses MI.
2089 (convert_to_reference): Try UDCs only after built-in conversions.
2090 (build_type_conversion_1): Don't play games with the argument to the
2091 method.
2092 (build_type_conversion): #if 0 out code for binding to reference.
2093
a3203465
MS
2094Thu Jun 23 00:22:28 1994 Jason Merrill (jason@deneb.cygnus.com)
2095
21474714
MS
2096 * decl2.c (finish_file): Use TREE_SYMBOL_REFERENCED to decide
2097 whether to emit inlines.
2098
a3203465
MS
2099 * decl.c (grokdeclarator): Set explicit_int for decls that just
2100 specify, say, 'long'.
2101
2102 * init.c (do_friend): Do overload C functions (or call pushdecl,
63718c49 2103 anyaway).
a3203465
MS
2104
2105Wed Jun 22 13:40:49 1994 Jason Merrill (jason@deneb.cygnus.com)
2106
2107 * cvt.c (build_up_reference): Don't call readonly_error.
2108 (convert_to_reference): Propagate const and volatile from expr to
2109 its type.
2110
2111 * tree.c (lvalue_p): Random CALL_EXPRs are not lvalues.
2112
2113 * cvt.c (build_up_reference): Break out WITH_CLEANUP_EXPR when
2114 creating a temporary.
2115 (convert_to_reference): Lose excessive and incorrect trickiness.
2116 (cp_convert): Call build_cplus_new with with_cleanup_p set.
2117
2118 * typeck2.c (build_functional_cast): Ditto.
2119
2120Tue Jun 21 17:38:38 1994 Jason Merrill (jason@deneb.cygnus.com)
2121
2122 * decl.c (grokdeclarator): signed, unsigned, long and short all
2123 imply 'int'.
2124
2125 * decl.c (grokdeclarator): Allow "this is a type" syntax.
2126 (grok_reference_init): Simplify and fix.
2127
2128Sun Jun 19 17:08:48 1994 Jason Merrill (jason@deneb.cygnus.com)
2129
2130 * decl.c (grokdeclarator): pedwarn about a typedef that specifies no
2131 type.
2132
2133Sat Jun 18 04:16:50 1994 Jason Merrill (jason@deneb.cygnus.com)
2134
2135 * decl.c (start_function): Move TREE_PUBLIC and DECL_EXTERNAL
2136 tinkering to after call to pushdecl.
2137
2138Fri Jun 17 14:48:28 1994 Jason Merrill (jason@deneb.cygnus.com)
2139
2140 * call.c (build_method_call): Handle destructors for non-aggregate
2141 types properly.
2142
2143Thu Jun 16 16:48:05 1994 Jason Merrill (jason@deneb.cygnus.com)
2144
2145 * call.c (build_method_call): Make sure that the name given for the
2146 destructor matches the constructor_name of the instance.
2147
2148 * pt.c (do_function_instantiation): A non-extern instantiation
2149 overrides a later extern one.
2150 (do_type_instantiation): Ditto.
2151
2152Wed Jun 15 19:34:54 1994 Jason Merrill (jason@deneb.cygnus.com)
2153
2154 * init.c (expand_aggr_init): Use TYPE_MAIN_VARIANT to get the
2155 unqualified array type.
2156
2157 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Tests whether NODE is a
2158 CONSTRUCTOR with no elements.
2159
2160 * decl.c (various): Lose empty_init_node.
2161 (finish_decl): Use EMPTY_CONSTRUCTOR_P, do the empty CONSTRUCTOR
2162 thing depending on the value of DECL_COMMON instead of
2163 flag_conserve_space, do the empty CONSTRUCTOR thing for types that
2164 don't have constructors, don't treat a real empty CONSTRUCTOR
2165 specially.
2166
2167 * typeck2.c (process_init_constructor): Don't treat empty_init_node
2168 specially.
2169
6060a796 2170Wed Jun 15 19:05:25 1994 Mike Stump <mrs@cygnus.com>
a3203465
MS
2171
2172 * class.c (override_one_vtable): Don't forget to merge in an old
2173 overrider when we wanted to reuse a vtable, but couldn't.
2174
2175Wed Jun 15 15:03:16 1994 Jason Merrill (jason@deneb.cygnus.com)
2176
2177 * decl.c (start_decl): Put statics in common again.
2178
2179 * decl.c (grokdeclarator): Return NULL_TREE for an error rather than
2180 setting the type to error_mark_node.
2181
2182 * typeck.c (build_modify_expr): Build up a COMPOUND_EXPR for enum
2183 bitfield assignments.
2184
f0e01782
MS
2185Tue Jun 14 12:23:38 1994 Jason Merrill (jason@deneb.cygnus.com)
2186
2187 * decl.c (grok_op_properties): Const objects can be passed by value.
2188
2189Mon Jun 13 03:10:59 1994 Jason Merrill (jason@deneb.cygnus.com)
2190
2191 * decl2.c (import_export_vtable): Force implicit instantiations to
2192 be interface_only when -fno-implicit-templates.
2193
2194 * decl.c (duplicate_decls): Redeclaring a class template name is an
2195 error.
2196
2197 * pt.c (end_template_decl): Call GNU_xref_decl for class templates.
2198 * xref.c (GNU_xref_decl): Support templates.
2199
2200Sat Jun 11 17:09:05 1994 Jason Merrill (jason@deneb.cygnus.com)
2201
2202 * decl.c (grok_op_properties): Split out checking for whether this
2203 function should suppress the default assignment operator.
2204 * decl2.c (grok_function_init): Ditto.
2205 (copy_assignment_arg_p): New function do do just that.
2206 Now considers virtual assignment operators that take a base as an
2207 argument to count as copy assignment operators.
2208
2209 * search.c (dfs_debug_mark): Lose checks for DWARF_DEBUG and
2210 TREE_ASM_WRITTEN, as they are redundant.
2211
2212 * pt.c (end_template_decl): Don't try to set DECL_CLASS_CONTEXT on a
2213 decl that has no LANG_SPECIFIC part.
2214 (do_type_instantiation): Force the debugging information for this
2215 type to be emitted.
2216
2217 * decl.c (start_decl): Clear up uses of various types of templates
2218 (say sorry for static data members, rather than "invalid template").
2219 (expand_static_init): Fix initialization of static data members of
2220 template classes.
2221
2222Fri Jun 10 00:41:19 1994 Jason Merrill (jason@deneb.cygnus.com)
2223
2224 * decl.c (grokdeclarator): Set DECL_CONTEXT on static data members.
2225
2226 * g++.c (main): Use -xc++-cpp-output for .i files.
2227
2228 * pt.c (tsubst): Give meaningful error about declaring template for
2229 a copy constructor which was not declared in the class template.
2230 (do_type_instantiation): Explicit instantiation before the class
2231 template is an error.
2232 (instantiate_template): Don't die if tsubst returns error_mark_node.
2233
2234Thu Jun 9 19:04:59 1994 Jason Merrill (jason@deneb.cygnus.com)
2235
2236 Don't synthesize the copy assignment operator if the one in a base
2237 class is pure virtual.
2238 * cp-tree.h (TYPE_HAS_ABSTRACT_ASSIGN_REF): New macro to indicate
2239 whether the type has a pure virtual copy assignment operator.
2240 * class.c (finish_base_struct): Don't generate the copy assignment
2241 operator if a base class has a pure virtual one.
2242 * decl.c (grok_op_properties): Add disabled code to set
2243 TYPE_HAS_ABSTRACT_ASSIGN_REF with comment pointing to where it is
2244 actually set.
2245 * decl2.c (grok_function_init): Set TYPE_HAS_ABSTRACT_ASSIGN_REF.
2246
2247 * decl2.c (import_export_vtable): Always treat template
2248 instantiations as if write_virtuals >= 2, and treat implicit
2249 instantiations as external if -fno-implicit-templates.
2250 (finish_file): Output all pending inlines if
2251 flag_keep_inline_functions.
2252
6060a796 2253Wed Jun 8 20:48:02 1994 Mike Stump <mrs@cygnus.com>
f0e01782
MS
2254
2255 * tree.c (layout_vbasetypes): Align virtual base classes inside
2256 complete objects, so that we don't core dump on machines such as
2257 SPARCs when we access members that require larger than normal
2258 alignments, such as a double. Also, we bump up the total alignment
2259 on the complete type, as necessary.
2260
2261Wed Jun 8 16:18:14 1994 Jason Merrill (jason@deneb.cygnus.com)
2262
2263 * gxxint.texi (Free Store): New section with code for examining
2264 cookie.
2265 (Limitations of g++): Remove operator delete entry, since it is no
2266 longer accurate. Fix access control entry.
2267
2268 * typeck.c (build_unary_op): Pedwarn about taking the address of or
2269 incrementing a cast to non-reference type.
2270 (build_modify_expr): Use convert instead of convert_force again.
2271
2272 * search.c (get_base_distance): Use IS_AGGR_TYPE_CODE to check for
2273 class type, not == RECORD_TYPE.
2274
2275 * decl.c (grokdeclarator): Cope with grokfndecl returning NULL_TREE.
2276
2277 * typeck2.c (report_case_error): #if 0 out.
2278 * lex.c (real_yylex): Lose RANGE.
2279 * parse.y: Ditto.
2280
2281Tue Jun 7 18:17:35 1994 Jason Merrill (jason@deneb.cygnus.com)
2282
2283 * parse.y (simple_stmt, case ranges): Use ELLIPSIS instead of RANGE.
2284
2285Mon Jun 6 19:39:57 1994 Jason Merrill (jason@deneb.cygnus.com)
2286
2287 * typeck.c (build_c_cast): Don't shortcut conversions to the same
2288 type. Don't replace consts with their values here, since that's now
2289 done in cp_convert.
2290
2291 * cvt.c (cp_convert): When converting to bool, take
2292 integer_zero_node to false_node and all other INTEGER_CSTs to
2293 true_node.
2294 (build_type_conversion): Don't complain about multiple conversions
2295 to float if we're not really converting.
2296
a0a33927
MS
2297Fri Jun 3 02:10:56 1994 Jason Merrill (jason@deneb.cygnus.com)
2298
f0e01782
MS
2299 Implement 'extern template class A<int>;' syntax for suppressing
2300 specific implicit instantiations.
2301 * cp-tree.h: Update prototypes for do_*_instantiation.
2302 * pt.c (do_pending_expansions): Don't compile 'extern' explicit
2303 instantiations.
2304 (do_function_instantiation): Set DECL_EXTERNAL on 'extern' explicit
2305 instantiations.
2306 (do_type_instantiation): Ditto.
2307 * parse.y (explicit_instantiation): Support 'extern template class
2308 A<int>;' syntax.
2309 * decl.c (start_function): Don't modify the settings of TREE_PUBLIC
2310 and DECL_EXTERNAL on explicit instantiations.
2311
a0a33927
MS
2312 * cvt.c (cp_convert): Replace constants with their values before
2313 converting.
f0e01782 2314 (cp_convert): Consistently use 'e' instead of 'expr'.
a0a33927
MS
2315
2316Thu Jun 2 03:53:30 1994 Jason Merrill (jason@deneb.cygnus.com)
2317
2318 * typeck2.c (build_x_arrow): Resolve OFFSET_REFs first.
2319
2320Wed Jun 1 18:57:35 1994 Jason Merrill (jason@deneb.cygnus.com)
2321
2322 * typeck2.c (digest_init): Handle initializing a pmf with an
2323 overloaded method.
2324 * typeck.c (build_ptrmemfunc): Handle overloaded methods.
2325
2326 * decl.c (pushtag): Use build_decl to make TYPE_DECLs.
2327 (xref_defn_tag): Ditto.
2328 * pt.c (process_template_parm): Ditto.
2329 (lookup_template_class): Ditto.
2330 (push_template_decls): Ditto.
2331 (instantiate_class_template): Ditto.
2332 (create_nested_upt): Ditto.
2333 * class.c (finish_struct): Don't try to set DECL_CLASS_CONTEXT on
2334 TYPE_DECLs.
2335
2336 * typeck.c (convert_arguments): Make sure type is not NULL before
2337 checking its TREE_CODE.
2338
6060a796 2339Wed Jun 1 17:40:39 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
2340
2341 * class.c (get_derived_offset): New routine.
2342 * class.c (finish_base_struct): Make sure we set BINFO_VTABLE and
2343 BINFO_VIRTUALS when we choose a new base class to inherit from.
2344 * class.c (modify_one_vtable): Use get_derived_offset to get the
2345 offset to the most base class subobject that we derived this binfo
2346 from.
2347 * class.c (finish_struct): Move code to calculate the
2348 DECL_FIELD_BITPOS of the vfield up, as we need might need it for
2349 new calls to get_derived_offset in modify_one_vtable.
2350
2351Wed Jun 1 16:50:59 1994 Jason Merrill (jason@deneb.cygnus.com)
2352
2353 * init.c (build_member_call): Use build_pointer_type instead of
2354 TYPE_POINTER_TO.
2355
2356Wed Jun 1 11:11:15 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
2357
2358 * decl.c (grokdeclarator): Make sure we have a DNAME set before we
2359 try to use it in an error.
2360
6060a796 2361Wed Jun 1 09:48:49 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
2362
2363 * typeck.c (convert_arguments, convert_for_initialization): Don't
2364 strip NOP_EXPRs, when we are converting to a reference.
2365
2366Wed Jun 1 01:11:38 1994 Jason Merrill (jason@deneb.cygnus.com)
2367
2368 * typeck.c (build_modify_expr): Don't dereference references when
2369 initializing them.
2370
2371 * decl2.c (grokfield): Don't check for grokdeclarator returning
2372 error_mark_node any more.
2373
2374 * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node.
2375 (start_method): Return void_type_node instead of error_mark_node.
2376
2377 * typeck.c (build_modify_expr): Resolve offset refs earlier.
2378
2379Tue May 31 16:06:58 1994 Jason Merrill (jason@deneb.cygnus.com)
2380
2381 * call.c (build_method_call): Resolve OFFSET_REFs in the object.
2382
2383 * typeck.c (build_modify_expr): Dereference references before trying
2384 to assign to them.
2385
2386 * call.c (build_method_call): Don't confuse type conversion
2387 operators with constructors.
2388 * typeck2.c (build_functional_cast): Just call build_c_cast if there
2389 was only one parameter.
2390 * method.c (build_typename_overload): Don't set
2391 IDENTIFIER_GLOBAL_VALUE on these identifiers.
2392 * decl.c (grok_op_properties): Warn about defining a type conversion
2393 operator that converts to a base class (or reference to it).
2394 * cvt.c (cp_convert): Don't try to use a type conversion operator
2395 when converting to a base class.
2396 (build_type_conversion_1): Don't call constructor_name_full on an
2397 identifier.
2398 * cp-tree.h (DERIVED_FROM_P): Should be self-explanatory.
2399
2400 * decl.c (start_decl): Don't complain that error_mark_node is an
2401 incomplete type.
2402 (finish_decl): Check for type == error_mark_node.
2403
2404Mon May 30 23:38:55 1994 Jason Merrill (jason@deneb.cygnus.com)
2405
2406 * decl.c (start_function): Set DECL_DEFER_OUTPUT on implicit
2407 instantiations and inline members.
2408
2409 * spew.c (yylex): Set looking_for_template if the next token is a '<'.
2410
2411 * lex.h: Declare looking_for_template.
2412
2413 * decl.c (lookup_name_real): Use looking_for_template to arbitrate
2414 between type and template interpretations of an identifier.
2415
2416Sat May 28 04:07:40 1994 Jason Merrill (jason@deneb.cygnus.com)
2417
2418 * pt.c (instantiate_template): Zero out p if we found a
2419 specialization.
2420
2421 * decl.c (grokdeclarator): Elucidate warning.
2422 (grokdeclarator): If pedantic AND -ansi, complain about long long.
2423
2424 Make explicit instantiation work reasonably. It is now appropriate
2425 to deprecate the use of -fexternal-templates.
2426 * pt.c (instantiate_template): Set DECL_TEMPLATE_SPECIALIZATION or
2427 DECL_IMPLICIT_INSTANTIATION on fndecl as appropriate.
2428 (end_template_instantiation): Reflect changes in USE_TEMPLATE
2429 semantics.
2430 (do_pending_expansions): if (!flag_implicit_templates) DECIDE(0);
2431 (do_function_instantiation): Don't set EXPLICIT_INST if
2432 flag_external_templates is set. Do set TREE_PUBLIC and DECL_EXTERN
2433 appropriately otherwise.
2434 (do_type_instantiation): Set interface info for class. Set
2435 TREE_PUBLIC and DECL_EXTERN for methods. Do none of this if
2436 flag_external_templates is set.
2437 * parse.y: Reflect changes in USE_TEMPLATE semantics.
2438 * decl2.c: New flag flag_implicit_templates determines whether or
2439 not implicit instantiations get emitted. This flag currently
2440 defaults to true, and must be true for -fexternal-templates to work.
2441 (finish_file): Consider flag_implement_inlines when
2442 setting DECL_EXTERNAL. Consider flag_implicit_templates when
2443 deciding whether or not to emit a static copy.
2444 * decl.c (start_function): Set TREE_PUBLIC and DECL_EXTERNAL
2445 properly for template instantiations.
2446 (start_method): Set DECL_IMPLICIT_INSTANTIATION on methods of a
2447 template class.
2448 * cp-tree.h (CLASSTYPE_USE_TEMPLATE): Change semantics.
2449 (DECL_USE_TEMPLATE): Parallel macro for FUNCTION and VAR_DECLs.
2450 (various others): Accessor macros for the above.
2451
2452Fri May 27 13:57:40 1994 Jason Merrill (jason@deneb.cygnus.com)
2453
2454 * typeck.c (build_binary_op_nodefault): Division by constant zero is
2455 an error.
2456
6060a796 2457Fri May 27 13:50:15 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
2458
2459 * class.c (override_one_vtable): Don't modify things we don't own.
2460
2461Fri May 27 01:42:58 1994 Jason Merrill (jason@deneb.cygnus.com)
2462
2463 * decl.c (finish_decl): Don't postpone processing the initializer of
2464 a decl with DECL_EXTERNAL set, and do call rest_of_compilation for a
2465 PUBLIC const at toplevel.
2466 (grokdeclarator): pedwarn about initializing non-const or
2467 non-integral statics in the class body.
2468
2469 * decl.c (pushtag): Don't try to set DECL_CLASS_CONTEXT on a
2470 TYPE_DECL.
2471
2472 * call.c (convert_harshness): Dereference reference on rhs before
2473 proceeding, properly grok passing const things to non-const
2474 references.
2475
2476 * typeck.c (build_unary_op): Soften error about taking the address
2477 of main() to a pedwarn.
2478
2479 * lex.c (default_copy_constructor_body): Unambiguously specify base
2480 classes (i.e. A((const class ::A&)_ctor_arg) ).
2481 (default_assign_ref_body): Ditto.
2482
2483Thu May 26 13:13:55 1994 Gerald Baumgartner (gb@mexican.cygnus.com)
2484
2485 * decl2.c (grokfield): Don't complain about local signature
2486 method declaration without definition.
2487
2488 * call.c (convert_harshness): If `type' is a signature pointer
2489 and `parmtype' is a pointer to a signature, just return 0. We
2490 don't really convert in this case; it's a result of making the
2491 `this' parameter of a signature method a signature pointer.
2492
2493 * call.c (build_method_call): Distinguish calling the default copy
2494 constructor of a signature pointer/reference from a signature
2495 member function call.
2496
2497Thu May 26 12:56:25 1994 Jason Merrill (jason@deneb.cygnus.com)
2498
2499 * decl2.c (grokfield): Don't set TREE_PUBLIC on member function
2500 declarations.
2501
2502 * decl.c (duplicate_decls): A previous function declaration as
2503 static overrides a subsequent non-static definition.
2504 (grokdeclarator): Don't set TREE_PUBLIC on inline method
2505 declarations.
2506
2507Wed May 25 14:36:38 1994 Jason Merrill (jason@deneb.cygnus.com)
2508
2509 * decl.c (grokdeclarator): Handle initialization of static const
2510 members.
2511 (finish_decl): Ditto.
2512
2513 * decl2.c (grokfield): Allow initialization of static const members
2514 even when pedantic.
2515
2516 * decl2.c (grokfield): Deal with grokdeclarator returning
2517 error_mark_node.
2518
2519 * decl.c (grok_ctor_properties): Return 0 for A(A) constructor.
2520 (grokfndecl): Check the return value of grok_ctor_properties.
2521 (start_method): Ditto.
2522
2523 * parse.y (absdcl): Expand type_quals inline.
2524
2525Tue May 24 19:10:32 1994 Jason Merrill (jason@deneb.cygnus.com)
2526
2527 * decl.c (pushtag): Use IS_AGGR_TYPE rather than checking for a
2528 RECORD_TYPE.
2529
2530Tue May 24 18:09:16 1994 Per Bothner (bothner@kalessin.cygnus.com)
2531
2532 * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks,
2533 always use "__vt_%s".
2534 * decl2.c (finish_vtable_vardecl): Don't consider abstract virtuals
2535 when looking for a "sentinal" method (to decide on emitting vtables).
2536 * decl2.c (finish_file): Scan all decls for thunks that need
2537 to be emitted.
2538 * decl2.c (finish_vtable_vardecl): Don't bother calling emit_thunk.
2539 * method.c (make_thunk): Use a more meaningful label. If there
2540 exists a matching top-level THUNK_DECL re-use it; otherwise
2541 create a new THUNK_DECL (and declare it).
2542 * method.c (emit_thunk): Make thunk external/public depending
2543 on the underlying method.
2544
2545Tue May 24 00:22:04 1994 Jason Merrill (jason@deneb.cygnus.com)
2546
2547 * pt.c (tsubst): Use lookup_name_nonclass to find guiding decls, not
2548 lookup_name.
2549
2550 * call.c (build_overload_call_real): Don't immediately pick a
2551 function which matches perfectly.
2552
2553 * decl.c (grokdeclarator): Use c_build_type_variant for arrays.
2554 (grokdeclarator): Warn about, and throw away, cv-quals attached to a
2555 reference (like 'int &const j').
2556
2557 * typeck.c (convert_arguments): Don't mess with i for methods.
2558 * call.c (build_method_call): Pass the function decl to
2559 convert_arguments.
2560
2561 * typeck.c (comp_ptr_ttypes_real): New function. Implements the
2562 checking for which multi-level pointer conversions are allowed.
2563 (comp_target_types): Call it.
2564 (convert_for_assignment): Check const parity on the ultimate target
2565 type, too. And make those warnings pedwarns.
2566
2567Mon May 23 14:11:24 1994 Jason Merrill (jason@deneb.cygnus.com)
2568
2569 * error.c (dump_char): Use TARGET_* for character constants.
2570
2571Mon May 23 13:03:03 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
2572
2573 * tree.c (debug_no_list_hash): Make static.
2574
2575 * decl.c (decls_match): Say the types don't match if newdecl ends up
2576 with a null type, after we've checked if olddecl does.
2577 (pushdecl): Check if the decls themselves match before looking for
2578 an extern redeclared as static, to avoid inappropriate and incorrect
2579 warnings.
2580
2581Fri May 20 14:04:34 1994 Jason Merrill (jason@deneb.cygnus.com)
2582
2583 * decl.c (grokdeclarator): Make warning about duplicate short, etc.
2584 a pedwarn.
2585
2586 * typeck.c (build_c_cast): Casting to function or method type is an
2587 error.
2588
2589 * class.c (finish_struct): Make warning for anonymous class with no
2590 instances a pedwarn.
2591
2592 * Makefile.in (stamp-parse): Expect a s/r conflict.
2593
2594 * typeck.c (build_modify_expr): pedwarn about using a non-lvalue
2595 cast as an lvalue.
2596
2986ae00
MS
2597Thu May 19 12:08:48 1994 Jason Merrill (jason@deneb.cygnus.com)
2598
2599 * cvt.c (type_promotes_to): Make sure bool promotes to int rather
2600 than unsigned on platforms where sizeof(char)==sizeof(int).
2601
2602Wed May 18 14:27:06 1994 Jason Merrill (jason@deneb.cygnus.com)
2603
2604 * typeck.c (build_c_cast): Tack on a NOP_EXPR when casting to
2605 another variant.
2606 (build_modify_expr): Don't strip NOP_EXPRs, and don't get tricky
2607 and treat them as lvalues.
2608
2609 * decl.c (shadow_tag): Do complain about forward declarations of
2610 enums and empty declarations.
2611 * parse.y: Don't complain about forward declarations of enums and
2612 empty declarations.
2613
2614 * typeck.c (convert_for_assignment): Complain about changing
2615 the signedness of a pointer's target type.
2616
2617 * parse.y (stmt): Move duplicated code for checking case values from
2618 here.
2619 * decl2.c (check_cp_case_value): To here. And add a call to
2620 constant_expression_warning.
2621
2622 * typeck.c (convert_for_assignment): Don't complain about assigning
2623 a negative value to bool.
2624
2625 * decl.c (init_decl_processing): Make bool unsigned.
2626
2627 * class.c (finish_struct): Allow bool bitfields.
2628
2986ae00
MS
2629Wed May 18 12:35:27 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
2630
2631 * Make-lang.in (c++.install-man): Get g++.1 from $(srcdir)/cp.
2632
2633Wed May 18 03:28:35 1994 Jason Merrill (jason@deneb.cygnus.com)
2634
2635 * cvt.c (build_type_conversion): Lose special handling of
2636 truthvalues.
2637
2638 * search.c (dfs_pushdecls): Improve shadowing warning.
2639
2640Tue May 17 13:34:46 1994 Jason Merrill (jason@deneb.cygnus.com)
2641
2642 * init.c (build_delete): Throw away const and volatile on `this'.
2643
2644 * decl.c (finish_enum): Put the constants in TYPE_VALUES again,
2645 rather than the enumerators.
2646 (pushtag): s/cdecl/c_decl/g
2647
2648Mon May 16 23:04:01 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
2649
63718c49
GB
2650 * cp/typeck.c (common_type): Attribute merging.
2651 (comp_types): Utilise COMP_TYPE_ATTRIBUTES macro.
2986ae00 2652
63718c49 2653 * cp/parse.y: Revamp attribute parsing.
2986ae00
MS
2654
2655Mon May 16 01:40:34 1994 Jason Merrill (jason@deneb.cygnus.com)
2656
2657 * decl.c (shadow_tag): Also check for inappropriate use of auto and
2658 register.
2659
2660 * method.c (build_overload_name): Clarify that the illegal case is a
2661 pointer or reference to array of unknown bound.
2662
2663 * error.c (dump_type_prefix): Print references to arrays properly.
2664
2665 * typeck.c (various): Be more helpful in pointer
2666 comparison diagnostics.
2667
2668 * tree.c (lvalue_p): MODIFY_EXPRs are lvalues again. Isn't this
2669 fun?
2670
2671 * parse.y: Also catch an error after valid stmts.
2672
2673 * search.c (dfs_init_vbase_pointers): Don't abort because `this' is
2674 const.
2675
2676 * typeck.c (convert_for_initialization): If call to
2677 convert_to_reference generated a diagnostic, print out the parm
2678 number and function decl if any.
2679
2680 * errfn.c (cp_thing): Check atarg1 to determine whether or not we're
2681 specifying a line, not atarg.
2682
2683 * tree.c (build_cplus_method_type): Always make `this' const.
2684
2685 * decl2.c (grokclassfn): If -fthis-is-variable and this function is
2686 a constructor or destructor, make `this' non-const.
2687
2688 * typeck.c (build_modify_expr): Don't warn specially about
2689 assignment to `this' here anymore, since it will be caught by the
2690 usual machinery.
2691
2692 * various: Disallow specific GNU extensions (variable-size arrays,
2693 etc.) when flag_ansi is set, not necessarily when pedantic is set,
2694 so that people can compile with -pedantic-errors for tighter const
2695 checking and such without losing desirable extensions.
2696
2697 * typeck2.c (build_functional_cast): Call build_method_call with
2698 LOOKUP_PROTECT.
2699 (process_init_constructor): Only process FIELD_DECLs.
2700
2701 * decl.c (finish_decl): Also force static consts with no explicit
2702 initializer that need constructing into the data segment.
2703
2704 * init.c (build_delete): Undo last patch, as it interferes with
2705 automatic cleanups.
2706
2707Sat May 14 01:59:31 1994 Jason Merrill (jason@deneb.cygnus.com)
2708
2709 * call.c, class.h, cp-tree.h, cvt.c, decl2.c: Lose old overloading
2710 code.
2711
2712 * init.c (build_delete): pedwarn about using plain delete to delete
2713 an array.
2714
2715Fri May 13 16:45:07 1994 Jason Merrill (jason@deneb.cygnus.com)
2716
2717 * typeck.c (comp_target_types): Be more helpful in contravariance
2718 warnings, and make them pedwarns.
2719
2720 * decl.c (grokdeclarator): Use decl_context to decide whether or not
2721 this is an access declaration.
2722
2723 * class.c (finish_struct_bits): Set TYPE_HAS_INT_CONVERSION if it
2724 has a conversion to enum or bool, too.
2725
6060a796 2726Fri May 13 16:31:27 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
2727
2728 * method.c (emit_thunk): Make declaration for
2729 current_call_is_indirect local (needed for hppa).
2730
2731Fri May 13 16:16:37 1994 Jason Merrill (jason@deneb.cygnus.com)
2732
2733 * pt.c (uses_template_parms): Grok BOOLEAN_TYPE.
2734 (tsubst): Ditto.
2735
6060a796 2736Fri May 13 16:23:32 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
2737
2738 * pt.c (tsubst): If there is already a function for this expansion,
2739 use it.
2740 * pt.c (instantiate_template): Ditto.
2741
2742Fri May 13 10:30:42 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
2743
2744 * parse.y (implicitly_scoped_stmt, simple_stmt case): Use
2745 kept_level_p for MARK_ENDS argument to expand_end_bindings, to avoid
2746 generating debug info for unemitted symbols on some systems.
2747
2748 * cp-tree.h (build_static_cast, build_reinterpret_cast,
2749 build_const_cast): Add declarations.
2750
6060a796 2751Fri May 13 09:50:31 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
2752
2753 * search.c (expand_indirect_vtbls_init): Fix breakage from Apr 27
2754 fix. We now try get_binfo, and if that doesn't find what we want,
2755 we go back to the old method, which still sometimes fails.
2756
2757Fri May 13 01:43:18 1994 Jason Merrill (jason@deneb.cygnus.com)
2758
2759 * parse.y (initdcl): Call cplus_decl_attributes on the right
2760 variable.
2761 * decl2.c (cplus_decl_attributes): Don't call decl_attributes for
2762 void_type_node.
2763
2764 * typeck.c (build_binary_op_nodefault): Change result_type for
2765 comparison ops to bool.
2766 (build_binary_op): Convert args of && and || to bool.
2767 * cvt.c (build_default_binary_type_conversion): Convert args of &&
2768 and || to bool.
2769 (build_default_unary_type_conversion): Convert arg of ! to bool.
2770 (type_promotes_to): bool promotes to int.
2771
6060a796 2772Fri May 13 01:43:18 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
2773
2774 Implement the new builtin `bool' type.
2775 * typeck.c (build_binary_op_nodefault): Convert args of && and || to
2776 bool.
2777 (build_unary_op): Convert arg of ! to bool.
2778 * parse.y: Know true and false. Use bool_truthvalue_conversion.
2779 * method.c (build_overload_value): Know bool.
2780 (build_overload_name): Ditto.
2781 * lex.c (init_lex): Set up RID_BOOL.
2782 * gxx.gperf: Add bool, true, false.
2783 * error.c (*): Know bool.
2784 * decl.c (init_decl_processing): Set up bool, true, false.
2785 * cvt.c (cp_convert): Handle conversion to bool.
2786 (build_type_conversion): Ditto.
2787 * *.c: Accept bool where integers and enums are accepted (use
2788 INTEGRAL_CODE_P macro).
2789
8de7634e
RE
2790Thu May 12 19:13:54 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk)
2791
2792 * g++.c: Use #ifdef for __MSDOS__, not #if.
2793
6060a796 2794Thu May 12 18:05:18 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
2795
2796 * decl2.c (lang_f_options): Handle -fshort-temps. -fshort-temps
2797 gives old behavior , and destroys temporaries earlier. Default
2798 behavior now conforms to the ANSI working paper.
2799
2800Thu May 12 14:45:35 1994 Jason Merrill (jason@deneb.cygnus.com)
2801
2802 * typeck.c (build_modify_expr): Understand MODIFY_EXPR as an lvalue.
2803 Use convert_force to convert the result of a recursive call when we
2804 are dealing with a NOP_EXPR. Don't automatically wrap MODIFY_EXPRs
2805 in COMPOUND_EXPRs any more.
2806 (various): Lose pedantic_lvalue_warning.
2807 (unary_complex_lvalue): Understand MODIFY_EXPR.
2808
2809 * cvt.c (convert_to_reference): Allow DECL to be error_mark_node if
2810 we don't know what we're initializing.
2811
2812Wed May 11 01:59:36 1994 Jason Merrill (jason@deneb.cygnus.com)
2813
2814 * cvt.c (convert_to_reference): Modify to use convtype parameter.
2815 Only create temporaries when initializing a reference, not when
2816 casting.
2817 (cp_convert): New main function.
2818 (convert): Call cp_convert.
2819 * cvt.c, decl.c, typeck.c: Fix calls to convert_to_reference.
2820 * cp-tree.h (CONV_*): New constants used by conversion code for
2821 selecting conversions to perform.
2822
2823 * tree.c (lvalue_p): MODIFY_EXPRs are no longer lvalues.
2824
2825 * typeck.c (build_{static,reinterpret,const_cast): Stubs that just
2826 call build_c_cast.
2827 * parse.y: Add {static,reinterpret,const}_cast.
2828 * gxx.gperf: Ditto.
2829
2830 * typeck.c (common_type): Allow methods with basetypes of different
2831 UPTs.
2832 (comptypes): Deal with UPTs.
2833 (build_modify_expr): Wrap all MODIFY_EXPRs in a COMPOUND_EXPR.
2834
2835 * pt.c (end_template_decl): Check for multiple definitions of member
2836 templates.
2837
2838 * call.c (build_method_call): Complain about calling an abstract
2839 virtual from a constructor.
2840
2841 * typeck.c (pointer_int_sum): Check for the integer operand being 0
2842 after checking the validity of the pointer operand.
2843
2844 * typeck2.c (digest_init): Pedwarn about string initializer being
2845 too long.
2846
2847Tue May 10 12:10:28 1994 Jason Merrill (jason@deneb.cygnus.com)
2848
2849 * decl.c (push_overloaded_decl): Only throw away a builtin if the
2850 decl in question is the artificial one.
2851
2852 * parse.y (simple_stmt, switch): Use implicitly_scoped_stmt because
2853 expand_{start,end}_case cannot happen in the middle of a block.
2854
2855 * cvt.c (build_type_conversion_1): Use convert again.
2856
2857Tue May 10 11:52:04 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
2858
2859 * typeck2.c (digest_init): Make sure we check for signed and
2860 unsigned chars as well when warning about string initializers.
2861
2862 * init.c (emit_base_init): Check if there's a DECL_NAME on the
2863 member before trying to do an initialization for it.
2864
6060a796 2865Tue May 10 11:34:37 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
2866
2867 * except.c: Don't do anything useful when cross compiling.
2868
2869Tue May 10 03:04:13 1994 Jason Merrill (jason@deneb.cygnus.com)
2870
2871 * decl.c (duplicate_decls): Fix up handling of builtins yet again.
2872 (push_overloaded_decl): Ditto.
2873
2874 * cvt.c (convert): Don't look for void type conversion.
2875
2876Mon May 9 18:05:41 1994 Jason Merrill (jason@deneb.cygnus.com)
2877
2878 * init.c (do_friend): Only do a pushdecl for friends, not
2879 pushdecl_top_level.
2880
2881Mon May 9 13:36:34 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
2882
2883 * decl.c (lookup_name_current_level): Put empty statement after
2884 the label OUT to make the code valid C.
2885
2886Mon May 9 12:20:57 1994 Jason Merrill (jason@deneb.cygnus.com)
2887
2888 * typeck.c (build_binary_op_nodefault): Only complain about
2889 comparing void * and a function pointer if void * is smaller.
2890
2891Sun May 8 01:29:13 1994 Jason Merrill (jason@deneb.cygnus.com)
2892
2893 * decl.c (lookup_name_current_level): Move through temporary binding
2894 levels.
2895
2896 * parse.y (already_scoped_stmt): Revive.
2897 (simple_stmt): Use it again.
2898
2899 * decl.c (poplevel): Always call poplevel recursively if we're
2900 dealing with a temporary binding level.
2901
6060a796 2902Sat May 7 10:52:28 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
2903
2904 * decl.c (finish_decl): Make sure we run cleanups for initial values
2905 of decls. Cures memory leak.
2906 * decl.c (expand_static_init): Ditto for static variables.
2907 * decl2.c (finish_file): Ditto for globals.
2908
2909Sat May 7 03:57:44 1994 Jason Merrill (jason@deneb.cygnus.com)
2910
2911 * typeck.c (commonparms): Don't complain about redefining default
2912 args.
2913
2914 * decl.c (duplicate_decls): Don't complain twice about conflicting
2915 function decls.
2916 (decls_match): Don't look at default args.
2917 (redeclaration_error_message): Complain about redefining default
2918 args.
2919
2920 * call.c (build_overload_call_real): Also deal with guiding
2921 declarations coming BEFORE the template decl.
2922
2923 * pt.c (unify): Allow different parms to have different
2924 cv-qualifiers.
2925 (unify): Allow trivial conversions on non-template parms.
2926
2927Fri May 6 03:53:23 1994 Jason Merrill (jason@deneb.cygnus.com)
2928
2929 * pt.c (tsubst): Support OFFSET_TYPEs.
2930 (unify): Ditto.
2931
2932 * decl2.c (finish_decl_parsing): Call push_nested_class with a type.
2933
2934 * init.c (build_offset_ref): Fix error message.
2935 * search.c (lookup_field): Ditto.
2936
2937 * call.c (build_scoped_method_call): Pass binfo to
2938 build_method_call.
2939 * typeck.c (build_object_ref): Ditto.
2940
2941 * typeck2.c (binfo_or_else): Don't return a _TYPE.
2942
2943 * class.c (finish_struct): Don't complain about re-use of inherited
2944 names or shadowing of type decls.
2945 * decl.c (pushdecl_class_level): Ditto.
2946
2947 * decl.c (finish_enum): Set the type of all the enums.
2948
2949 * class.c (finish_struct): Don't get confused by access decls.
2950
2951 * cp-tree.h (TYPE_MAIN_DECL): New macro to get the _DECL for a
2952 _TYPE. You can stop using TYPE_NAME for that now.
2953
2954 * parse.y: Lose doing_explicit (check $0 instead).
2955 * gxx.gperf: 'template' now has a RID.
2956 * lex.h (rid): Ditto.
2957 * lex.c (init_lex): Set up the RID for 'template'.
2958
2959 * parse.y (type_specifier_seq): typed_typespecs or
2960 nonempty_type_quals. Use it.
2961 (handler_args): Fix bogus syntax.
2962 (raise_identifier{,s}, optional_identifier): Lose.
2963 * except.c (expand_start_catch_block): Use grokdeclarator to parse
2964 the catch variable.
2965 (init_exception_processing): The second argument to
2966 __throw_type_match is ptr_type_node.
2967
2968 Fri May 6 07:18:54 1994 Chip Salzenberg (chip@fin)
2969
2970 [ change propagated from c-decl.c of snapshot 940429 ]
2971 * cp/decl.c (finish_decl): Setting asmspec_tree should not
2972 zero out the old RTL.
2973
6060a796 2974Fri May 6 01:25:38 1994 Mike Stump <mrs@cygnus.com>
8d2733ca
MS
2975
2976 Add alpha exception handling support to the compiler.
2977 Quick and dirty backend in except.c.
2978
2979 * cp/*: Remove most remnants of old exception handling support.
2980 * decl.c (finish_function): Call expand_exception_blocks to put
2981 the exception hanlding blocks at the end of the function.
2982 * dec.c (hack_incomplete_structures): Make sure expand_decl_cleanup
2983 comes after expand_decl_init.
2984 * except.c: Reimplementation.
2985 * expr.c (cplus_expand_expr): Handle THROW_EXPRs.
2986 * lex.c (init_lex): Always have catch, try and throw be reserved
2987 words, so that we may always parse exception handling.
2988 * parse.y: Cleanup to support new interface into exception handling.
2989 * tree.def (THROW_EXPR): Add.
2990
2991Thu May 5 17:35:37 1994 Jason Merrill (jason@deneb.cygnus.com)
2992
2993 * parse.y (simple_stmt, for loops): Use implicitly_scoped_stmt.
2994 (various): Lose .kindof_pushlevel and partially_scoped_stmt.
2995
2996Thu May 5 16:17:27 1994 Kung Hsu (kung@mexican.cygnus.com)
2997
2998 * parse.y (already_scoped_stmt): move expand_end_binding() to
2999 fix the unmatched LBB/LBE in stabs.
3000
3001Thu May 5 14:36:17 1994 Jason Merrill (jason@deneb.cygnus.com)
3002
3003 * decl.c (set_nested_typename): Set TREE_MANGLED on the new
3004 identifiers.
3005 (pushdecl): Check TREE_MANGLED.
3006 (xref_tag): Ditto.
3007 * cp-tree.h (TREE_MANGLED): This identifier is a
3008 DECL_NESTED_TYPENAME (named to allow for future use to denote
3009 mangled function names as well).
3010
3011 Implement inconsistency checking specified in [class.scope0].
3012 * decl.c (lookup_name_real): Don't set ICV here after all.
3013 (finish_enum): Also set the type of the enumerators themselves.
3014 (build_enumerator): Put the CONST_DECL in the list instead of its
3015 initial value.
3016 (pushdecl_class_level): Check inconsistent use of a name in the
3017 class body.
3018 * class.c (finish_struct): Check inconsistent use of a name in the
3019 class body. Don't set DECL_CONTEXT on types here anymore.
3020 * parse.y (qualified_type_name): Note that the identifier has now
3021 been used (as a type) in the class body.
3022 * lex.c (do_identifier): Note that the identifier has now been used
3023 (as a constant) in the class body.
3024 * error.c (dump_decl): Print type and enum decls better.
3025
700f8a87
MS
3026Thu May 5 09:35:35 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
3027
3028 * typeck.c (build_modify_expr): Warn about assignment to `this'.
3029
3030Wed May 4 15:55:49 1994 Jason Merrill (jason@deneb.cygnus.com)
3031
3032 * init.c (build_delete): Use the global operator delete when
3033 requested.
3034
3035 * decl.c (lookup_name_real): If we find the type we're looking in a
3036 base class while defining a class, set IDENTIFIER_CLASS_VALUE for
3037 the type.
3038
3039 * class.c (finish_struct): Remove a couple of dependencies on
3040 language linkage.
3041
3042 * decl.c (pushtag): Classes do nest in extern "C" blocks.
3043 (pushdecl): Only set DECL_NESTED_TYPENAME on the canonical one for
3044 the type.
3045 (pushtag): Remove another dependency on the language linkage.
3046
3047 * lex.c (cons_up_default_function): Don't set DECL_CLASS_CONTEXT to
3048 a const-qualified type.
3049
3050 * decl.c (push_overloaded_decl): Throw away built-in decls here.
3051 (duplicate_decls): Instead of here.
3052
3053Wed May 4 15:27:40 1994 Per Bothner (bothner@kalessin.cygnus.com)
3054
3055 * typeck.c (get_member_function_from_ptrfunc): Do The Right
3056 Thing (I hope) if we're using thunks.
3057
3058Wed May 4 13:52:38 1994 Jason Merrill (jason@deneb.cygnus.com)
3059
3060 * parse.y (specialization): aggr template_type_name ';'.
3061 (named_class_head_sans_basetype): Use it.
3062 (explicit_instantiation): Ditto.
3063 (tmpl.2): Revert.
3064
3065 * cvt.c (build_type_conversion_1): Use convert_for_initialization,
3066 rather than convert, to do conversions after the UDC.
3067
3068 * cp-tree.h (SHARED_MEMBER_P): This member is shared between all
3069 instances of the class.
3070
3071 * search.c (lookup_field): If the entity found by two routes is the
3072 same, it's not ambiguous.
3073
3074Wed May 4 12:10:00 1994 Per Bothner (bothner@kalessin.cygnus.com)
3075
3076 * decl.c (lookup_name_real): Check for a NULL TREE_VALUE,
3077 to prevent the compiler from crashing ...
3078
3079Wed May 4 11:19:45 1994 Jason Merrill (jason@deneb.cygnus.com)
3080
3081 * call.c (build_method_call): If we don't have an object, check
3082 basetype_path to figure out where to look up the function.
3083
3084 * typeck.c (convert_for_initialization): Pass TYPE_BINFO (type) to
3085 build_method_call in case exp is NULL_TREE.
3086
3087Tue May 3 16:02:53 1994 Per Bothner (bothner@kalessin.cygnus.com)
3088
3089 Give a vtable entries a unique named type, for the sake of gdb.
3090 * class.c (build_vtable_entry): The addres of a thunk now has
3091 type vtable_entry_type, not ptr_type_node.
3092 * method.c (make_thunk): Fix type of THUNK_DECL.
3093 * class.c (add_virtual_function, override_one_vtable): Use
3094 vfunc_ptr_type_node, instead of ptr_type_node.
3095 * cp-tree.h (vfunc_ptr_type_node): New macro.
3096 * decl.c (init_decl_processing): Make vtable_entry_type
3097 be a unique type of pointer to a unique function type.
3098
3099Tue May 3 09:20:44 1994 Jason Merrill (jason@deneb.cygnus.com)
3100
3101 * parse.y (do_explicit): Sets doing_explicit to 1.
3102 (explicit_instantiation): Use do_explicit rather than TEMPLATE
3103 directly, add "do_explicit error" rule.
3104 (datadef): Set doing_explicit to 0 after an explicit instantiation.
3105 (tmpl.2): Don't instantiate if we see a ';' unless we're doing an
3106 explicit instantiation.
3107 (named_class_head_sans_basetype): Remove aggr template_type_name
3108 ';' again.
3109
3110Mon May 2 23:17:21 1994 Jason Merrill (jason@deneb.cygnus.com)
3111
3112 * search.c (lookup_nested_tag): Lose.
3113
3114 * decl2.c (grokfield): Set DECL_CONTEXT on TYPE_DECLs.
3115 (lookup_name_nonclass): Lose.
3116
3117 * decl.c (poplevel_class): Add force parameter.
3118 (lookup_name_real): Fix handling of explicit scoping which specifies
3119 a class currently being defined. Add 'nonclass' argument.
3120 (lookup_name, lookup_name_nonclass): Shells for lookup_name_real.
3121
3122 * class.c (finish_struct): Don't unset IDENTIFIER_CLASS_VALUEs here.
3123 (popclass): Force clearing of IDENTIFIER_CLASS_VALUEs if we're being
3124 called from finish_struct.
3125
3126Mon May 2 19:06:21 1994 Per Bothner (bothner@kalessin.cygnus.com)
3127
3128 * decl.c (init_decl_processing), cp-tree.h: Removed memptr_type.
3129 (It seeems redundant, given build_ptrmemfunc_type.)
3130 * typeck.c (get_member_function_from_ptrfunc), gc.c (build_headof,
3131 build_classof): Use vtable_entry_type instead of memptr_type.
3132 * method.c (emit_thunk): Call poplevel with functionbody==0
3133 to prevent DECL_INITIAL being set to a BLOCK.
3134
3135Mon May 2 15:02:11 1994 Jason Merrill (jason@deneb.cygnus.com)
3136
3137 * parse.y (named_class_head_sans_basetype): Add "aggr
3138 template_type_name ';'" rule for forward declaration of
3139 specializations.
3140
3141Mon May 2 15:02:11 1994 Jason Merrill (jason@deneb.cygnus.com)
3142
3143 * class.c (instantiate_type): Deal with pmf's.
bfef964b
JM
3144
3145 * Make-lang.in (cc1plus): Don't depend on OBJS or BC_OBJS, since
3146 stamp-objlist does.
700f8a87 3147
bfef964b
JM
3148 * Makefile.in (../cc1plus): Depend on OBJDEPS.
3149 (OBJDEPS): Dependency version of OBJS.
3150
700f8a87
MS
3151Mon May 2 12:51:31 1994 Kung Hsu (kung@mexican.cygnus.com)
3152
3153 * search.c (dfs_debug_mark): unmark TYPE_DECL_SUPPRESS_DEBUG, not
3154 DECL_IGNORED_P.
3155
3156Fri Apr 29 12:29:56 1994 Jason Merrill (jason@deneb.cygnus.com)
3157
3158 * class.c (finish_struct): Clear out memory of local tags. And
3159 typedefs.
3160
3161 * decl2.c (grokclassfn): Don't set DECL_CONTEXT to a cv-qualified
3162 type.
3163 * search.c (get_matching_virtual): Be more helpful in error message.
3164
3165 * *: Use DECL_ARTIFICIAL (renamed from DECL_SYNTHESIZED).
3166
3167 * lex.c (default_assign_ref_body): Expect TYPE_NESTED_NAME to work.
3168 (default_copy_constructor_body): Ditto.
3169
3170 * class.c (finish_struct): Don't gratuitously create multiple decls
3171 for nested classes.
3172
3173Thu Apr 28 23:39:38 1994 Jason Merrill (jason@deneb.cygnus.com)
3174
3175 Avoid clobbering the arg types of other functions when reverting
3176 static member functions.
3177 * decl.c (revert_static_member_fn): Rearrange arguments, don't
3178 require values for 'fn' and 'argtypes', add warning to comment
3179 above.
3180 (decls_match): Rearrange arguments in call to rsmf.
3181 (grok_op_properties): Don't pass values for fn and argtypes.
3182 * pt.c (instantiate_template): Don't pass values for fn and argtypes.
3183
15fa00e9
DE
3184Thu Apr 28 16:29:11 1994 Doug Evans (dje@canuck.cygnus.com)
3185
3186 * Make-lang.in (cc1plus): Depend on stamp-objlist.
3187 * Makefile.in (BC_OBJS): Delete.
700f8a87
MS
3188 (OBJS): Cat ../stamp-objlist to get language independent files.
3189 Include ../c-common.o.
15fa00e9
DE
3190 (../cc1plus): Delete reference to BC_OBJS.
3191
700f8a87
MS
3192Thu Apr 28 02:12:08 1994 Jason Merrill (jason@deneb.cygnus.com)
3193
3194 * search.c (compute_access): No really, deal with static members
3195 properly. Would I lie to you?
3196
3197 Implement lexical hiding of function declarations.
3198 * pt.c (tsubst): Use lookup_name to look for function decls to guide
3199 instantiation.
3200 * method.c (build_opfncall): Use lookup_name_nonclass to look for
3201 non-member functions.
3202 * init.c (do_friend): Use lookup_name_nonclass to look for
3203 functions.
3204 * error.c (ident_fndecl): Use lookup_name to look for functions.
3205 * decl2.c (lookup_name_nonclass): New function, skips over
3206 CLASS_VALUE.
3207 * decl.c (struct binding_level): Lose overloads_shadowed field.
3208 (poplevel): Don't deal with overloads_shadowed.
3209 (push_overloaded_decl): Do lexical hiding for functions.
3210 * class.c (instantiate_type): Don't check non-members if we have
3211 members with the same name.
3212 * call.c (build_method_call): Use lookup_name_nonclass instead of
3213 IDENTIFIER_GLOBAL_VALUE to check for non-member functions.
3214 (build_overload_call_real): Ditto.
3215
3216 * decl.c (duplicate_decls): Check for ambiguous overloads here.
3217 (push_overloaded_decl): Instead of here.
3218
3219 * decl.c (pushdecl): Back out Chip's last change.
3220
3221 * decl.c (grok_op_properties): operators cannot be static members.
3222
3223 * cp-tree.h (DECL_SYNTHESIZED): DECL_SOURCE_LINE == 0
3224 (SET_DECL_SYNTHESIZED): DECL_SOURCE_LINE = 0
3225 * lex.c (cons_up_default_function): Use SET_DECL_SYNTHESIZED.
3226
3227 * method.c (do_inline_function_hair): Don't put friends of local
3228 classes into global scope, either.
3229
3230 * typeck2.c (build_functional_cast): Don't look for a function call
3231 interpretation.
3232
6060a796 3233Thu Apr 28 15:19:46 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
3234
3235 * cp-tree.h: disable use of backend EH.
3236
15fa00e9
DE
3237Wed Apr 27 21:01:24 1994 Doug Evans (dje@canuck.cygnus.com)
3238
3239 * Make-lang.in (c++.distdir): mkdir tmp/cp first.
3240 * Makefile.in (INCLUDES): Move definition to same place as
3241 parent makefile.
3242 (ALLOCA): Define.
3243 (OLDAR_FLAGS): Delete.
3244 (OLDCC): Define.
3245 (DIR): Delete.
3246 (CLIB): Define.
3247 (####site): Delete.
3248 (SUBDIR_USE_ALLOCA): Don't use ALLOCA if compiling with gcc.
3249
39211cd5
MS
3250Wed Apr 27 19:10:04 1994 Kung Hsu (kung@mexican.cygnus.com)
3251
3252 * decl.c (xref_tag): not to use strstr(), it's not available on
3253 all platforms.
3254
3255Wed Apr 27 18:10:12 1994 Jason Merrill (jason@deneb.cygnus.com)
3256
3257 * class.c (finish_struct): Resolve yet another class/pmf confusion.
3258
3259 * call.c (build_overload_call_real): Don't take the single-function
3260 shortcut if we're dealing with an overloaded operator.
3261
6060a796 3262Wed Apr 27 17:35:37 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
3263
3264 * search.c (get_base_distance): Search the virtual base class
3265 binfos, incase someone wants to convert to a real virtual base
3266 class.
3267 * search.c (expand_indirect_vtbls_init): Use convert_pointer_to_real
3268 instead of convert_pointer_to, as it now will work.
3269
3270Wed Apr 27 15:36:49 1994 Jason Merrill (jason@deneb.cygnus.com)
3271
3272 * cvt.c (convert_to_reference): Don't complain about casting away
3273 const and volatile.
3274
3275 * typeck.c (build_unary_op): References are too lvalues.
3276
6060a796 3277Wed Apr 27 13:58:05 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
3278
3279 * class.c (override_one_vtable): We have to prepare_fresh_vtable
3280 before we modify it, not after, also, we cannot reuse an old vtable,
3281 once we commit to a new vtable. Implement ambiguous overrides in
3282 virtual bases as abstract. Hack until we make the class
3283 ill-formed.
3284
3285Wed Apr 27 01:17:08 1994 Jason Merrill (jason@deneb.cygnus.com)
3286
3287 * parse.y (unary_expr): Expand new_placement[opt] and
3288 new_initializer[opt] inline.
3289
3290 * search.c (lookup_fnfields): Don't throw away the inheritance
3291 information here, either.
3292 (compute_access): Handle static members properly.
3293
3294 * init.c (build_member_call): Always set basetype_path, and pass it
3295 to lookup_fnfields.
3296
3297 * search.c (lookup_field): Deal properly with the case where
3298 xbasetype is a chain of binfos; don't throw away the inheritance
3299 information.
3300 (compute_access): protected_ok always starts out at 0.
3301
3302 * init.c (resolve_offset_ref): Don't cast `this' to the base type
3303 until we've got our basetype_path.
3304
3305 * cp-tree.h (IS_OVERLOAD_TYPE): aggregate or enum.
3306
3307 * cvt.c (build_up_reference): Use build_pointer_type rather than
3308 TYPE_POINTER_TO.
3309
3310 * call.c (convert_harshness_ansi): Call type_promotes_to for reals
3311 as well.
3312
3313 * cvt.c (type_promotes_to): Retain const and volatile, add
3314 float->double promotion.
3315
3316 * decl.c (grokdeclarator): Don't bash references to arrays into
3317 references to pointers in function parms. Use type_promotes_to.
3318
6060a796 3319Tue Apr 26 23:44:36 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
3320
3321 Finish off Apr 19th work.
3322
3323 * class.c (finish_struct_bits): Rename has_abstract_virtuals to
3324 might_have_abstract_virtuals.
3325 * class.c (strictly_overrides, override_one_vtable,
3326 merge_overrides): New routines to handle virtual base overrides.
3327 * class.c (finish_struct): Call merge_overrides to handle overrides
3328 in virtual bases.
3329
3330Tue Apr 26 12:45:53 1994 Jason Merrill (jason@deneb.cygnus.com)
3331
3332 * typeck.c (build_function_call): Call build_function_call_real with
3333 LOOKUP_NORMAL.
3334
3335 * *: Don't deal with TYPE_EXPRs.
3336
3337 * tree.c (lvalue_p): If the type of the expression is a reference,
3338 it's an lvalue.
3339
3340 * cvt.c (convert_to_reference): Complain about passing const
3341 lvalues to non-const references.
3342 (convert_from_reference): Don't arbitrarily throw away const and
3343 volatile on the target type.
3344
3345 * parse.y: Simplify and fix rules for `new'.
3346
3347 * decl.c (grok_op_properties): operator void is illegal.
3348
3349Mon Apr 25 02:36:28 1994 Jason Merrill (jason@deneb.cygnus.com)
3350
3351 * parse.y (components): Anonymous bitfields can still have declspecs.
3352
3353 * decl.c (pushdecl): Postpone handling of function templates like we
3354 do C functions.
3355
3356 * search.c (expand_indirect_vtbls_init): Fix infinite loop when
3357 convert_pointer_to fails.
3358
3359 * call.c (compute_conversion_costs_ansi): A user-defined conversion
3360 by itself is better than that UDC followed by standard conversions.
3361 Don't treat integers and reals specially.
3362
3363 * cp-tree.h: Declare flag_ansi.
3364
3365 * typeck.c (c_expand_return): pedwarn on return in void function
3366 even if the expression is of type void.
3367 (build_c_cast): Don't do as much checking for casts to void.
3368 (build_modify_expr): pedwarn about array assignment if this code
3369 wasn't generated by the compiler.
3370
3371 * tree.c (lvalue_p): A comma expression is an lvalue if its second
3372 operand is.
3373
3374 * typeck.c (default_conversion): Move code for promoting enums and
3375 ints from here.
3376 * cvt.c (type_promotes_to): To here.
3377 * call.c (convert_harshness_ansi): Use type_promotes_to. Also fix
3378 promotion semantics for reals.
3379
15fa00e9
DE
3380Sun Apr 24 16:52:51 1994 Doug Evans (dje@canuck.cygnus.com)
3381
3382 * Make-lang.in (c++.install-common): Check for g++-cross.
3383 * Makefile.in: Remove Cygnus cruft.
3384 (config.status): Delete.
3385 (RTL_H): Define.
3386 (TREE_H): Use complete pathname, some native makes have minimal
3387 VPATH support.
3388 (*.o): Use complete pathname to headers in parent dir.
3389 (doc, info, dvi): Delete.
3390
700f8a87
MS
3391Sun Apr 24 16:52:51 1994 Doug Evans (dje@canuck.cygnus.com)
3392
3393 * Make-lang.in (c++.install-common): Check for g++-cross.
3394 * Makefile.in: Remove Cygnus cruft.
3395 (config.status): Delete.
3396 (RTL_H): Define.
3397 (TREE_H): Use complete pathname, some native makes have minimal
3398 VPATH support.
3399 (*.o): Use complete pathname to headers in parent dir.
3400 (doc, info, dvi): Delete.
3401
39211cd5
MS
3402Sun Apr 24 00:47:49 1994 Jason Merrill (jason@deneb.cygnus.com)
3403
3404 * decl.c (pushdecl): Avoid redundant warning on redeclaring function
3405 with different return type.
3406 (decls_match): Compare return types strictly.
3407
3408Fri Apr 22 12:55:42 1994 Jason Merrill (jason@deneb.cygnus.com)
3409
3410 * cvt.c (build_type_conversion): Do try to convert through other
3411 pointers. This will fail if the class defines multiple pointer
3412 conversions.
3413
3414 * error.c (dump_type_prefix): Print out pointers to arrays properly.
3415 (dump_type_suffix): Ditto. (was 'int *[]', now 'int (*)[]')
3416
3417 * typeck.c (build_unary_op): Disallow ++/-- on pointers to
3418 incomplete type.
3419
3420 * decl.c (duplicate_decls): Check mismatched TREE_CODES after
3421 checking for shadowing a builtin. If we're redeclaring a builtin
3422 function, bash the old decl to avoid an ambiguous overload.
3423
3424 * cvt.c (convert_to_reference): Don't force arrays to decay here.
3425
3426 * tree.c (lvalue_p): A MODIFY_EXPR is an lvalue.
3427
3428 * decl.c (duplicate_decls): Don't assume that the decls will have
3429 types.
3430
3431 Mon Apr 18 11:35:32 1994 Chip Salzenberg (chip@fin.uucp)
3432
3433 [ cp/* changes propagated from c-* changes in 940318 snapshot ]
3434 * c-decl.c (pushdecl): Warn if type mismatch with another external decl
3435 in a global scope.
3436
3437 Fri Apr 22 06:38:56 1994 Chip Salzenberg (chip@fin.uucp)
3438
3439 * cp/typeck2.c (signature_error): Use cp_error for "%T".
3440
3441 Mon Apr 18 11:59:59 1994 Chip Salzenberg (chip@fin.uucp)
3442
3443 [ cp/* changes propagated from c-* changes in 940415 snapshot ]
3444 * cp/decl.c (duplicate_decls, pushdecl, builtin_function):
3445 Use DECL_FUNCTION_CODE instead of DECL_SET_FUNCTION_CODE.
3446
3447 Mon Apr 18 11:55:18 1994 Chip Salzenberg (chip@fin.uucp)
3448
3449 [ cp/* changes propagated from c-* changes in 940409 snapshot ]
3450 * cp/decl.c (duplicate_decls): Put new type in same obstack as
3451 old ones, or permanent if old ones in different obstacks.
3452
3453 Mon Apr 18 11:48:49 1994 Chip Salzenberg (chip@fin.uucp)
3454
3455 [ cp/* changes propagated from c-* changes in 940401 snapshot ]
3456 * cp/parse.y (attrib): Handle string args as expressions,
3457 merging the two rules. `mode' attribute now takes a string arg.
3458 Delete the rule for an identifier as arg.
3459
3460 Mon Apr 18 11:24:00 1994 Chip Salzenberg (chip@fin.uucp)
3461
3462 [ cp/* changes propagated from c-* changes in 940312 snapshot ]
3463 * cp/typeck.c (pointer_int_sum): Multiplication should be done signed.
3464 (pointer_diff): Likewise the division.
3465
3466 Sun Mar 6 19:43:39 1994 Chip Salzenberg (chip@fin.uucp)
3467
3468 [ cp/* changes propagated from c-* changes in 940304 snapshot ]
3469 * cp/decl.c (finish_decl): Issue warning for large objects,
3470 if requested.
3471
3472 Sat Feb 19 22:20:32 1994 Chip Salzenberg (chip@fin.uucp)
3473
3474 [ cp/* changes propagated from c-* changes in 940218 snapshot ]
3475 * cp/parse.y (attrib): Handle attribute ((section ("string"))).
3476 * cp/decl.c (duplicate_decls): Merge section name into new decl.
3477
3478 Tue Feb 8 09:49:17 1994 Chip Salzenberg (chip@fin.uucp)
3479
3480 [ cp/* changes propagated from c-* changes in 940206 snapshot ]
3481 * cp/typeck.c (signed_or_unsigned_type): Check for any
63718c49 3482 INTEGRAL_TYPE_P not just INTEGER_TYPE.
39211cd5
MS
3483
3484 Mon Dec 6 13:35:31 1993 Norbert Kiesel (norbert@i3.INformatik.rwth-aachen.DE)
3485
3486 * cp/decl.c (finish_enum): Start from 0 when determining precision
3487 for short enums.
3488
3489 Fri Dec 3 17:07:58 1993 Ralph Campbell (ralphc@pyramid.COM)
3490
3491 * cp/parse.y (unary_expr): Look at $1 for tree_code rather than
3492 casting $$.
3493
3494 Wed Nov 17 19:22:09 1993 Chip Salzenberg (chip@fin.uucp)
3495
3496 * cp/typeck.c (build_binary_op_nodefault): Propagate code
3497 from C front-end to optimize unsigned short division.
3498 (build_conditional_expr): Fix bug in "1 ? 42 : (void *) 8".
3499
3500 Wed Nov 17 19:17:18 1993 Chip Salzenberg (chip@fin.uucp)
3501
3502 * cp/call.c (convert_harshness_ansi): Given an (e.g.) char
3503 constant, prefer 'const char &' to 'int'.
3504
3505 Wed Feb 3 13:11:48 1993 Chip Salzenberg (chip@fin.uucp)
3506
3507 * cp/class.c (finish_struct_methods): Handle multiple
3508 constructors in fn_fields list.
3509
3510Fri Apr 22 12:48:10 1994 Kung Hsu (kung@mexican.cygnus.com)
3511
3512 * class.c (finish_struct): use TYPE_DECL_SUPPRESS_DEBUG to flag
3513 types not to be dumped in stabs, like types in #pragma interface.
3514 * decl.c (init_decl_processing): use TYPE_DECL_SUPPRESS_DEBUG to
3515 mark unknown type.
3516
15fa00e9
DE
3517Fri Apr 22 03:27:26 1994 Doug Evans (dje@cygnus.com)
3518
3519 * Language directory reorganization.
3520 See parent makefile.
3521
700f8a87
MS
3522Fri Apr 22 03:27:26 1994 Doug Evans (dje@cygnus.com)
3523
3524 * Language directory reorganization.
3525 See parent makefile.
3526
39211cd5
MS
3527Thu Apr 21 18:27:57 1994 Per Bothner (bothner@kalessin.cygnus.com)
3528
3529 * cp-tree.h (THUNK_DELTA): It is normally negative, so
3530 use signed .i variant of frame_size rather than unsigned .u.
3531 * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks,
3532 use "VT" rather than "vt" due to binary incompatibility.
3533 * class.c (get_vtable_name): Use strlen of VTABLE_NAME_FORMAT,
3534 rather than sizeof, since it is now an expression.
3535 * class.c (modify_one_vtable): Modify to skip initial element
3536 containing a count of the vtable.
3537
7177d104
MS
3538Thu Apr 21 00:09:02 1994 Jason Merrill (jason@deneb.cygnus.com)
3539
3540 * lex.c (check_newline): Force interface_unknown on main input file.
3541
3542 * pt.c (do_pending_expansions): Always emit functions that have been
3543 explicitly instantiated.
3544 (do_function_instantiation): Set DECL_EXPLICITLY_INSTANTIATED.
3545 (do_type_instantiation): Set CLASSTYPE_VTABLE_NEEDS_WRITING and
3546 DECL_EXPLICITLY_INSTANTIATED on all my methods.
3547 * parse.y (explicit_instantiation): Call do_type_instantiation for
3548 types.
3549 * decl2.c (finish_vtable_vardecl): Call import_export_vtable.
3550 * decl.c (start_function): Don't set DECL_EXTERNAL on a function
3551 that has been explicitly instantiated.
3552 * cp-tree.h (DECL_EXPLICITLY_INSTANTIATED): Alias for
3553 DECL_LANG_FLAG_4.
3554 * class.c: Move import_export_vtable to decl2.c, and comment out all
3555 uses.
3556
3557Wed Apr 20 16:51:06 1994 Jason Merrill (jason@deneb.cygnus.com)
3558
3559 * lex.c (process_next_inline): Don't muck with DECL_INLINE.
3560 (do_pending_inlines): Ditto.
3561
6060a796 3562Tue Apr 19 22:25:41 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
3563
3564 Reimplement vtable building, and most vtable pointer setting.
3565 Allows for earier maintenance, easier understandability, and most
3566 importantly, correct semantics.
3567
3568 * class.c (build_vtable): Removed unneeded
3569 SET_BINFO_VTABLE_PATH_MARKED.
3570 * class.c (prepare_fresh_vtable): Ditto. Added argument.
3571 * class.c (modify_vtable_entry): General cleanup.
3572 * class.c (related_vslot, is_normal, modify_other_vtable_entries,
3573 modify_vtable_entries): Removed.
3574 * class.c (add_virtual_function): General cleanup.
3575 * class.c (finish_base_struct): Setup BINFO_VTABLE and
3576 BINFO_VIRTUALS as early as we can, so that modify_all_vtables can
3577 work.
3578 * class.c (finish_vtbls): New routine, mostly from
3579 unmark_finished_struct.
3580 * class.c (overrides): New routine.
3581 * class.c (modify_one_vtable): New routine, mostly from
3582 modify_other_vtable_entries and modify_vtable_entries.
3583 * class.c (modify_all_direct_vtables, modify_all_indirect_vtables,
3584 modify_all_vtables): New routines.
3585 * class.c (finish_struct): Added arguemnt to prepare_fresh_vtable
3586 call. General cleanup on how pending_hard_virtuals are handled.
3587 General cleanup on modifying vtables. Use finish_vtbls, instead of
3588 unmark_finished_struct.
3589 * cp-tree.h (init_vtbl_ptrs, expand_direct_vtbls_init,
3590 get_first_matching_virtual, get_matching_virtual,
3591 expand_vbase_vtables_init, expand_indirect_vtbls_init): Update.
3592 * cvt.c (convert_pointer_to_real): cleanup error message.
3593 * decl.c (grokfndecl): General cleanup.
3594 * decl.c (finish_function): Change init_vtbl_ptrs call to
3595 expand_direct_vtbls_init. Change expand_vbase_vtables_init call to
3596 expand_indirect_vtbls_init.
3597 * init.c (expand_virtual_init): Remove unneeded argument.
3598 * init.c (init_vtbl_ptrs): Rename to expand_direct_vtbls_init, added
3599 two arguments to make more general. Made more general. Now can be
3600 used for vtable pointer initialization from virtual bases.
3601 * init.c (emit_base_init): Change expand_vbase_vtables_init call to
3602 expand_indirect_vtbls_init. Change init_vtbl_ptrs call to
3603 expand_direct_vtbls_init.
3604 * init.c (expand_virtual_init): General cleanup.
3605 * init.c (expand_default_init): Change expand_vbase_vtables_init
3606 call to expand_indirect_vtbls_init.
3607 * init.c (expand_recursive_init_1): Change expand_vbase_vtables_init
3608 call to expand_indirect_vtbls_init.
3609 * init.c (expand_recursive_init): Change expand_vbase_vtables_init
3610 call to expand_indirect_vtbls_init.
3611 * search.c (get_first_matching_virtual): Rename to
3612 get_matching_virtual. General cleanup and remove setting of
3613 DECL_CONTEXT. That is now done in a cleaner way in
3614 modify_vtable_entry and add_virtual_function.
3615 * search.c (expand_vbase_vtables_init): Rename to
3616 expand_indirect_vtbls_init. General cleanup. Use
3617 expand_direct_vtbls_init to do hard work. Ensures that _all_ vtable
3618 pointers from virtual bases are set up.
3619 * search.c (bfs_unmark_finished_struct, unmark_finished_struct):
3620 Removed.
3621
3622 * *.[chy]: Remove support for VTABLE_USES_MASK.
3623
3624Tue Apr 19 12:51:59 1994 Jason Merrill (jason@deneb.cygnus.com)
3625
3626 * cvt.c (convert_to_reference): Use NOP_EXPRs to switch between
3627 reference and pointer types instead of bashing the types directly.
3628
3629 * call.c (build_overload_call_real): Use the TREE_CODE to determine
3630 whether the function is overloaded or not, rather than
3631 TREE_OVERLOADED.
3632 * *: Remove all uses of TREE_OVERLOADED.
3633
3634 * decl.c (grokdeclarator): Only complain about initializing const
3635 fields when -ansi or -pedantic.
3636
3637Tue Apr 19 12:42:42 1994 Doug Evans (dje@canuck.cygnus.com)
3638
3639 * cp-tree.h (THUNK_DELTA): frame_size is now a union.
3640
3641Mon Apr 18 00:17:13 1994 Jason Merrill (jason@deneb.cygnus.com)
3642
3643 Do overloading on a block-by-block basis, not function-by-function.
3644 * decl.c: Lose overloads_to_forget.
3645 (struct binding_level): Add overloads_shadowed field.
3646 (poplevel): Restore overloads_shadowed.
3647 (push_overloaded_decl): Use overloads_shadowed instead of
3648 overloads_to_forget.
3649 (finish_function): Don't look at overloads_to_forget.
3650
3651 Copy enum_overflow logic from c-decl.c.
3652 * decl.c (start_enum): Initialize enum_overflow.
3653 (build_enumerator): Use enum_overflow. Also use current_scope().
3654
3655 * search.c (current_scope): Move Brendan's comment from
3656 build_enumerator here.
3657
3658 * typeck.c (convert_for_assignment): Change warnings to pedwarns for
3659 discarding const/volatile.
3660
3661Sat Apr 16 01:18:21 1994 Jason Merrill (jason@deneb.cygnus.com)
3662
3663 * typeck.c (comp_target_parms): Accept TEMPLATE_TYPE_PARMs on the rhs.
3664 (comp_target_types): Ditto.
3665
3666 * decl.c (lookup_name): Don't unset got_scope here.
3667
3668 * spew.c (yylex): Only replace yylval with the TYPE_NESTED_NAME if
3669 got_scope != NULL_TREE.
3670
3671Fri Apr 15 16:36:33 1994 Jason Merrill (jason@deneb.cygnus.com)
3672
3673 Horrible kludge to prevent templates from being instantiated by
3674 their base classes.
3675 * parse.y (template_instantiate_once): Unset TYPE_BEING_DEFINED
3676 before we get to left_curly.
3677 * pt.c (instantiate_class_template): Set TYPE_BEING_DEFINED.
3678
3679 * error.c (dump_decl): If it's a typedef, print out the name of the
3680 decl, not just the underlying type.
3681
3682 * decl.c (pushdecl): If the old duplicate decl was a TYPE_DECL,
3683 update the IDENTIFIER_TYPE_VALUE of its name.
3684
3685 * decl2.c (finish_file): When processing the initializer for a
3686 static member, pretend that the dummy function is a member of the
3687 same class.
3688
3689Fri Apr 15 15:56:35 1994 Kung Hsu (kung@mexican.cygnus.com)
3690
63718c49
GB
3691 * class.c (build_vtable_entry): revert Apr 4 change.
3692 * decl2.c (mark_vtable_entries): replace pure virtual function
3693 decl with abort's.
7177d104
MS
3694
3695Fri Apr 15 13:49:33 1994 Jason Merrill (jason@deneb.cygnus.com)
3696
3697 * typeck.c (build_conditional_expr): Pedwarn on pointer/integer
3698 mismatch, and don't pedwarn on 0/function pointer mismatch.
3699
3700 * typeck2.c (digest_init): Lose code for special handling of unions.
3701 (process_init_constructor): Since they're handled just fine here.
3702 Pedwarn on excess elements.
3703
3704 * decl2.c (grokfield): Complain about local class method declaration
3705 without definition.
3706
3707Fri Apr 15 13:19:40 1994 Per Bothner (bothner@kalessin.cygnus.com)
3708
3709 * method.c (emit_thunk): Add extern declaration for
3710 current_call_is_indirect (needed for hppa).
3711
3712Thu Apr 14 16:12:31 1994 Jason Merrill (jason@deneb.cygnus.com)
3713
3714 Improve local class support; allow classes in different blocks to
3715 have the same name.
3716 * decl.c (pushtag): Support local classes better.
3717 (pushdecl_nonclass_level): New function for pushing mangled decls of
3718 nested types into the appropriate scope.
3719 (xref_defn_tag): Use pushdecl_nonclass_level instead of
3720 pushdecl_top_level.
3721 (grokfndecl): Don't mess with IDENTIFIER_GLOBAL_VALUE for local
3722 class methods.
3723 * method.c (do_inline_function_hair): Ditto.
3724
3725 * class.c (finish_struct): It is legal for a class with no
3726 constructors to have nonstatic const and reference members.
3727
3728Thu Apr 14 07:15:11 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
3729
3730 * decl.c (push_overloaded_decl): Avoid giving errors about
3731 built-ins, since duplicate_decls will have given warnings/errors
3732 for them.
3733
3734Thu Apr 14 03:45:12 1994 Jason Merrill (jason@deneb.cygnus.com)
3735
3736 * cvt.c (convert_to_reference): Warn about casting pointer type to
3737 reference type when this is probably not what they wanted.
3738
3739Wed Apr 13 13:12:35 1994 Per Bothner (bothner@kalessin.cygnus.com)
3740
3741 * decl.c (finish_decl): Don't mindlessly set TREE_USED for
3742 static consts any more (toplev.c has now been modified to
3743 not emit warnings if they are unused).
3744
3745Wed Apr 13 00:22:35 1994 Jason Merrill (jason@deneb.cygnus.com)
3746
3747 * decl.c (grok_op_properties): If op new/delete get here with
3748 METHOD_TYPEs, do a revert_static_member_fn.
3749
3750 * cp-tree.h (IDENTIFIER_CLASS_TYPE_VALUE): Lose.
3751 * init.c (is_aggr_typedef): Don't look at
3752 IDENTIFIER_CLASS_TYPE_VALUE.
3753 (get_aggr_from_typedef): Ditto.
3754 (get_type_value): Ditto.
3755 * call.c (build_scoped_method_call): Don't rely on overloaded
3756 template names having IDENTIFIER_CLASS_VALUE set.
3757
3758 * parse.y (component_decl_1, fn.def2): Revert rules for
3759 constructors.
3760 (component_decl_1, fn.def2): Use $1 instead of $$, since $$ is being
3761 clobbered.
3762
3763 * decl.c (start_function): Only warn about `void main()' if pedantic
3764 || warn_return_type.
3765
3766Tue Apr 12 02:14:17 1994 Jason Merrill (jason@deneb.cygnus.com)
3767
3768 Clean up overloading of the template name.
3769 * class.c (pushclass): overload the template name whenever pushing
3770 into the scope of a template class, not just if it is
3771 uninstantiated.
3772 (popclass): Correspondingly.
3773 * search.c (push_class_decls): Don't overload_template_name.
3774 * pt.c (overload_template_name): Don't set IDENTIFIER_LOCAL_VALUE or
3775 DECL_CONTEXT on things.
3776 * parse.y (left_curly): Don't overload_template_name.
3777 * class.c (finish_struct): Don't undo_template_name_overload.
3778
3779 * method.c (build_opfncall): Only pass one argument to global op
3780 delete.
3781
3782 * call.c (build_method_call): Use TYPE_VEC_DELETE_TAKES_SIZE to
3783 decide how many arguments to use for vec delete.
3784
3785 * decl.c (grok_op_properties): Be consistent in modifying
3786 current_class_type.
3787 (grokdeclarator): Only complain about function decls with no return
3788 type if we're being pedantic.
3789
3790Mon Apr 11 00:10:53 1994 Jason Merrill (jason@deneb.cygnus.com)
3791
3792 Add support for operator new [] and operator delete [].
3793
3794 * tree.def: Add VEC_NEW_EXPR and VEC_DELETE_EXPR.
3795 * ptree.c (print_lang_type): Indicate vec new/delete.
3796 * parse.y: Support vec new/delete.
3797 * method.c (build_decl_overload): Deal with vec new/delete.
3798 (build_opfncall): Ditto.
3799 * lex.c (init_lex): Set up values of ansi_opname and opname_tab for
3800 vec new/delete. vec new uses "__vn", and vec delete uses "__vd".
3801 * init.c (init_init_processing): Set up BIVN and BIVD.
3802 (do_friend): Don't clean up after mistaken setting of TREE_GETS_NEW,
3803 since it doesn't happen any more.
3804 (build_new): Support vec new. Always call something.
3805 (build_x_delete): Support vec delete.
3806 (build_vec_delete): Lose dtor_dummy argument, add use_global_delete,
3807 and pass it to build_x_delete.
3808 * decl2.c (delete_sanity): Don't change behavior by whether or not
3809 the type has a destructor. Pass use_global_delete to
3810 build_vec_delete.
3811 (coerce_delete_type): Make sure that the type returned has a first
3812 argument of ptr_type_node.
3813 * decl.c (init_decl_processing): Also declare the global vec
3814 new/delete.
3815 (grokdeclarator): Also force vec new/delete to be static.
3816 (grok_op_properties): Note presence of vec new/delete, and play with
3817 their args. If vec delete takes the optional size_t argument, set
3818 TYPE_VEC_DELETE_TAKES_SIZE.
3819 * cp-tree.h (TYPE_GETS_{REG,VEC}_DELETE): New macros to simplify
3820 checking for one delete or the other.
3821 (lang_type): gets_new and gets_delete are now two bits long. The
3822 low bit is for the non-array version. Lose gets_placed_new.
3823 (TYPE_VEC_DELETE_TAKES_SIZE): New macro indicating that the vec
3824 delete defined by this class wants to know how much space it is
3825 deleting.
3826 (TYPE_VEC_NEW_USES_COOKIE): New macro to indicate when vec new must
3827 add a header containing the number of elements in the vector; i.e.
3828 when the elements need to be destroyed or vec delete wants to know
3829 the size.
3830 * class.c (finish_struct_methods): Also check for overloading vec
3831 delete.
3832 * call.c (build_method_call): Also delete second argument for vec
3833 delete.
3834
3835 * decl.c (grokdeclarator): Correct complaints again.
3836 (grokdeclarator): Fix segfault on null declarator.
3837 (decls_match): Also accept redeclaration with no arguments if both
3838 declarations were in C context. Bash TREE_TYPE (newdecl) here.
3839 (duplicate_decls): Instead of here.
3840
3841 * parse.y (nested_name_specifier_1): Lose rules for dealing with
3842 syntax errors nicely, since they break parsing of 'const i;'.
3843
3844 * decl.c (lookup_name): if (got_scope == current_class_type)
3845 val = IDENTIFIER_CLASS_VALUE (name).
3846
3847 * search.c (lookup_nested_tag): Look in enclosing classes, too.
3848
3849 * spew.c (yylex): Only look one character ahead when checking for a
3850 SCOPE.
3851
3852 * lex.c (check_newline): Read first nonwhite char before
3853 incrementing lineno.
3854
3855 * decl.c (grokdeclarator): Don't claim that typedefs are variables
3856 in warning.
3857
3858 * parse.y: Divide up uses of unqualified_id into
3859 notype_unqualified_id and unqualified_id, so that TYPENAME can be
3860 used as an identifier after an object.
3861
3862 * class.c (push_nested_class): Don't push into non-class scope.
3863
3864 * decl.c (grokdeclarator): If an identifier could be a type
3865 conversion operator, but has no associated type, it's not a type
3866 conversion operator.
3867
3868 * pt.c (unify): Check for equality of constants better.
3869
3870 * decl.c (grokdeclarator): Don't complain about access decls.
3871
3872Sun Apr 10 02:39:55 1994 Jason Merrill (jason@deneb.cygnus.com)
3873
3874 * decl.c (grokdeclarator): pedwarn about data definitions without
3875 types here.
3876
3877 * parse.y (datadef): Don't pedwarn about decls without types here,
3878 since that is valid for functions.
3879 (fn.def2, component_decl): Support constructors with declmods again.
3880 (nomods_initdecls): For decls without any mods, so that we don't try
3881 to get declspecs from some arbitrary $0.
3882
3883 * search.c (lookup_field): Use cp_error.
3884
3885 * parse.y (nested_name_specifier_1): Don't check aggr/non-aggr type
3886 here; it breaks destructors for non-aggr types.
3887
3888 * decl.c (lookup_name): Only look for TYPE_DECLs in base classes of
3889 a type being defined, like the comment says.
3890 If got_scope is not an aggregate, just return NULL_TREE.
3891
3892 * pt.c (create_nested_upt): Kung's code for creating types nested
3893 within uninstantiated templates now lives here (it used to live in
3894 hack_more_ids). It needs to be expanded.
3895
3896 * parse.y: Stop calling see_typename so much.
3897
3898 * decl.c (lookup_name): Deal with TTPs and UPTs.
3899
3900 * lex.c (real_yylex): Don't set looking_for_typename just because we
3901 saw a 'new'.
3902 (dont_see_typename): #if 0 out.
3903
3904 * spew.c (yylex): Increment looking_for_typename if the next
3905 character is SCOPE, rather than setting it to 1; this way, the value
3906 from seeing an aggr specifier will not be lost. This kinda relies
3907 on looking_for_typename never being < 0, which is now true.
3908
3909 * parse.y (nested_name_specifier_1): Accept TEMPLATE_TYPE_PARMs,
3910 too.
3911 (named_class_head_sans_basetype): Accept template types, too. Oops.
3912
3913Fri Apr 8 16:39:35 1994 Jason Merrill (jason@deneb.cygnus.com)
3914
3915 * decl2.c (reparse_decl_as_expr1): Handle SCOPE_REFs.
3916
3917 * parse.y: Lose START_DECLARATOR.
3918
3919 * search.c (lookup_nested_tag): New function to scan CLASSTYPE_TAGS
3920 for a class.
3921
3922 * parse.y: Simplify fn.def2 and component_decl. Support 'enum
3923 A::foo' syntax. Catch invalid scopes better.
3924
3925 * parse.y, lex.c: lose TYPENAME_COLON.
3926
3927 * decl2.c (groktypefield): #if 0 out.
3928
3929 * decl.c (lookup_name): If the type denoted by got_scope is
3930 currently being defined, look in CLASSTYPE_TAGS rather than FIELDS.
3931
3932 * class.c (push_nested_class): Don't try to push into
3933 error_mark_node.
3934
3935Fri Apr 8 07:26:36 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
3936
3937 * Makefile.in (stamp-parse): Update count of conflicts to 33.
3938
3939Thu Apr 7 17:47:53 1994 Jason Merrill (jason@deneb.cygnus.com)
3940
3941 A saner implementation of nested types that treats template types
3942 no differently from non-template types. There are still some
3943 shortcomings of our system; most notably, it is difficult to look
3944 for a nested type that is hidden by another name, because of the way
3945 we keep track of hidden types. But this shouldn't be a problem for
3946 just about anyone. Perhaps lookup_field should be fixed up a bit.
3947
3948 * spew.c: Moved handling of nested types/scoping from the lexer
3949 into the parser. Removed variable template_type_seen_before_scope.
3950 Removed functions frob_identifier, hack_more_ids, and various cruft
3951 that was #if 0'd out in the past, reducing the size of the file from
3952 1146 lines to 450 lines. We can't quite do away with spew.c yet,
3953 though; we still need it for do_aggr () and checking for SCOPE after
3954 the current identifier. And setting lastiddecl.
3955
3956 * parse.y: Moved handling of nested types/scoping from the lexer
3957 into the parser, using a new global variable `got_scope'. Reduced
3958 the number of states by 53. Implemented all uses of explicit global
3959 scope. Removed terminals SCOPED_TYPENAME and SCOPED_NAME. Removed
3960 nonterminals tmpl.1, scoped_base_class, id_scope, typename_scope,
3961 scoped_typename. Added nonterminals nested_type,
3962 qualified_type_name, complete_type_name, qualified_id, ptr_to_mem,
3963 nested_name_specifier, global_scope, overqualified_id, type_name.
3964 Changed many others. Added 9 new reduce/reduce conflicts, which are
3965 nested type parallels of 9 that were already in the grammar for
3966 non-nested types. Eight of the now 33 conflicts should be removed
3967 in the process of resolving the late binding between variable and
3968 function decls.
3969
3970 * gxxint.texi (Parser): Update.
3971
3972 * cp-tree.h (IS_AGGR_TYPE_CODE): Add UNINSTANTIATED_P_TYPE.
3973
3974 * lex.h: Add decl for got_scope.
3975
3976 * lex.c (see_typename): Claim to be the lexer when calling
3977 lookup_name.
3978
3979 * decl.c (lookup_name): When called from the lexer, look at
3980 got_scope and looking_at_typename; otherwise don't.
3981
6060a796 3982Thu Apr 7 22:05:47 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
3983
3984 31th Cygnus<->FSF merge.
3985
3986Thu Apr 7 17:47:53 1994 Jason Merrill (jason@deneb.cygnus.com)
3987
3988 * decl2.c (mark_vtable_entries): Call this to mark all the
3989 entries in the vtable addressable.
3990 (finish_decl_parsing): Handle SCOPE_REFs.
3991
3992 * decl.c (decls_match): Always call compparms with strict == 1.
3993 Handle the special case of C function redecl here.
3994 (duplicate_decls): Only keep the old type if the new decl takes no
3995 arguments.
3996
3997 * typeck.c (compparms): Also allow t1 to be ... if strict == 0.
3998
6060a796 3999Thu Apr 7 16:17:50 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4000
4001 * class.c (build_vtable_entry): Fix breakage introduced Apr 5
4002 17:48:41.
4003
4004Wed Apr 6 16:05:10 1994 Per Bothner (bothner@kalessin.cygnus.com)
4005
4006 * init.c (build_virtual_init), search.c (build_vbase_vtables_init),
4007 ch-tree.h: Every place these functions were called, the result was
4008 immediately passed to expand_expr_stmt. Reduce redundancy by
4009 calling expand_expr_init *inside* these functions. These
4010 makes for a simpler interface, and we don't have to build
4011 compound expressions. Hence, rename these function to:
4012 expand_virtual_init and expand_vbase_vtables_init respectively.
4013 * init.c, decl.c: Change callers of these functions.
4014 * init.c, cp-tree.h (expand_virtual_init): Make static.
4015
4016 * decl2.c (finish_file): Check TREE_PUBLIC||TREE_ADDRESSABLE
4017 rather than DECL_SAVED_INSNS before emitting inlines.
4018
4019Wed Apr 6 13:06:39 1994 Jason Merrill (jason@deneb.cygnus.com)
4020
4021 * spew.c (init_spew): #if 0 out stuff used by arbitrate_lookup.
4022
4023 * decl.c (duplicate_decls): If this is a new declaration of an
4024 extern "C" function, keep the type (for the argtypes).
4025 (redeclaration_error_message): Don't check DECL_LANGUAGE here.
4026 (decls_match): Call compparms with a value of strict dependent on
4027 the value of strict_prototypes for DECL_LANGUAGE (oldecl).
4028
4029 * typeck.c (compparms): ... is only equivalent to non-promoting
4030 parms if we're not being strict.
4031
4032 * parse.y (empty_parms): Don't check flag_ansi || pedantic here.
4033
4034 * decl.c (init_decl_processing): if (flag_ansi || pedantic)
4035 strict_prototypes_lang_c = strict_prototypes_lang_cplusplus;
4036
4037 * decl2.c (grok_function_init): Don't set DECL_INITIAL on pure
4038 virtuals.
4039
4040Tue Apr 5 17:48:41 1994 Per Bothner (bothner@kalessin.cygnus.com)
4041
4042 Support for implementing vtables with thunks.
4043 * tree.def (THUNK_DECL): New TREE_CODE.
4044 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY), tree.c
4045 (fnaddr_from_vtable_entry): Handle flag_vtable_thunks case.
4046 * cp-tree.h (memptr_type): New variable.
4047 * class.c (build_vtable_entry): Build thunk if necessary.
4048 * class.c (build_vfn_ref): If using thunks, don't need
4049 to add delta field from vtable (there is none!).
4050 * decl.c: Add memptr_type as well as vtable_entry_type.
4051 If using thunks, the latter is just ptr_type_node.
4052 * gc.c, typeck.c: Use memptr_typeChange, not vtable_entry_type.
4053 * decl2.c (finish_vtable_vardecl): Handle thunks.
4054 * expr.c (cplus_expand_expr): Support THUNK_DECL.
4055
4056 * decl.c (grokdeclarator): Set DECL_THIS_EXTERN if "extern".
4057 * decl.c (start_function): Set current_extern_inline based on
4058 DECL_THIS_EXTERN, not TREE_PUBLIC.
4059 * decl.c (finish_function): Call mark_inline_for_output if needed,
4060
4061 Improve intelligence about when to emit inlines.
4062 * cp-tree.h (lang_decl_flags): New field saved_inline.
4063 * cp-tree.h (DECL_SAVED_INLINE): New macro.
4064 * class.c (add_virtual_function): Don't set TREE_ADDRESSABLE.
4065 * decl.h, decl.c (pending_addressable_inlines): Removed.
4066 * decl2.c (pending_addressable_inlines): Renamed to saved_inlines.
4067 * decl2.c (mark_inline_for_output): Do nothing if
4068 DECL_SAVED_INLINE; otherwise set it (and add to saved_inlines list).
4069 * decl2.c (finish_vtable_vardecl): SET_CLASSTYPE_INTERFACE_KNOWN
4070 and set CLASSTYPE_INTERFACE_ONLY if there is a non-inline virtual.
4071 * decl2.c (finish_file): Writing out inlines later, so we can
4072 also handle the ones needed for vtbales.
4073 * decl2.c (write_vtable_entries, finish_vtable_typedecl): Removed.
4074
4075 * cp-tree.h, class.c, decl2.c, search.c: Remove -fvtable-hack
4076 and flag_vtable_hack. Use -fvtable-thunks and flag_vtable_thunks
4077 instead. (The rationale is that these optimizations both break binary
4078 compatibility, but should become the default in a future release.)
4079
6060a796 4080Wed Apr 6 10:53:56 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4081
4082 * class.c (modify_vtable_entries): Never reset the DECL_CONTEXT
4083 of a fndecl, as we might not be from that vfield.
4084
4085Tue Apr 5 17:43:35 1994 Kung Hsu (kung@mexican.cygnus.com)
4086
4087 * class.c (add_virtual_function): fix bug for pure virtual, so
4088 that DECL_VINDEX of the dummy decl copied won't be error.
4089 (see also Apr 4 change)
4090
4091Tue Apr 5 17:23:45 1994 Per Bothner (bothner@kalessin.cygnus.com)
4092
4093 * typeck.c (c_expand_return): Before checking that we're not
4094 returning the address of a local, make sure it's a VAR_DECL.
4095 (And don't worry about it being a TREE_LIST.)
4096
4097Tue Apr 5 13:26:42 1994 Jason Merrill (jason@deneb.cygnus.com)
4098
4099 * parse.y (YYDEBUG): Always define.
4100 * lex.c (YYDEBUG): Ditto.
4101
4102Mon Apr 4 11:28:17 1994 Kung Hsu (kung@mexican.cygnus.com)
4103
4104 * class.c (finish_struct): backup out the change below, put the
4105 new change for the same purpose. The change below breaks code.
4106
4107 * class.c (finish_struct): if pure virtual, copy node and make
4108 RTL point to abort, then put in virtual table.
4109 * decl2.c (grok_function_iit): reinstate Mar 31 change.
4110
4111Sat Apr 2 03:12:58 1994 Jason Merrill (jason@deneb.cygnus.com)
4112
4113 * init.c (build_new): pedwarn about newing const and volatile
4114 types.
4115
4116 * tree.c (get_identifier_list): Only do the special handling
4117 thing if we're dealing with the main variant of the record type.
4118
4119 * cvt.c (convert_to_reference): When converting between
4120 compatible reference types, use the pointer conversion machinery.
4121 Don't just blindly overwrite the old type.
4122
4123Fri Apr 1 17:14:42 1994 Jason Merrill (jason@deneb.cygnus.com)
4124
4125 * call.c (build_method_call): When looking at global functions,
4126 be sure to use instance_ptr for the first argument, not some version
4127 of it that has been cast to a base class. Also do this before
4128 comparing candidates.
4129
4130Thu Mar 31 19:50:35 1994 Jason Merrill (jason@deneb.cygnus.com)
4131
4132 * call.c (build_method_call): Constructors can be called for
4133 const objects.
4134
4135Thu Mar 31 16:20:16 1994 Kung Hsu (kung@mexican.cygnus.com)
4136
4137 * decl2.c (grok_func_init): do not abort as rtl for pur virtual
4138 fucntions. They can be defined somewhere else.
4139
4140Sat Jan 23 23:23:26 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
4141
4142 * decl.c (init_decl_processing): Declare __builtin_return_address
4143 and __builtin_frame_address for C++ as well.
4144
6060a796 4145Thu Mar 31 12:35:49 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4146
4147 * typeck2.c (store_init_value): Integral constant variables are
4148 always constant, even when doing -fpic.
4149
4150Sat Jan 23 23:23:26 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
4151
4152 * decl.c (redeclaration_error_message): Pass the types to
4153 comptypes.
4154
6060a796 4155Wed Mar 30 21:29:25 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4156
4157 Cures incorrect errors about pure virtuals in a class, when they
4158 have been overridden in a derived class.
4159
4160 * search.c (get_abstract_virtuals): Reimplement.
4161 * search.c (get_abstract_virtuals_1): New routine.
4162
4163Wed Mar 30 14:10:04 1994 Jason Merrill (jason@deneb.cygnus.com)
4164
4165 * pt.c (push_template_decls): Make the pushed level pseudo
4166 global.
4167
4168 * parse.y (extdefs): Don't pop everything if the current binding
4169 level is pseudo_global.
4170
4171 * decl.c (pop_everything): Stop on reaching a pseudo-global
4172 binding level.
4173
4174 * cp-tree.h (DECL_FUNCTION_MEMBER_P): Change to more reliable test.
4175
4176 * decl.c (duplicate_decls): Only copy DECL_SOURCE_{FILE_LINE} if
4177 the old decl actually had an initializer.
4178
4179 * {various}: Clean up gcc -W complaints.
4180
4181 * cp-tree.h (DECL_FUNCTION_MEMBER_P): Currently defined to be
4182 (DECL_CONTEXT (NODE) != NULL_TREE).
4183
4184 * parse.y (lang_extdef): Call pop_everything if necessary.
4185
4186 * decl.c (pop_everything): New function for popping binding
4187 levels left over after a syntax error.
4188 (pushdecl): Use DECL_FUNCTION_MEMBER_P to decide whether or not
4189 a function is a member.
4190
6060a796 4191Wed Mar 30 14:20:50 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4192
4193 Cures calling a more base base class function, when a more derived
4194 base class member should be called in some MI situations.
4195
4196 * search.c (make_binfo): Use more the more specialized base
63718c49
GB
4197 binfos from the binfo given as the second argument to make_binfo,
4198 instead of the unspecialized ones from the TYPE_BINFO.
7177d104
MS
4199 * class.c (finish_base_struct): Ditto, update callers.
4200 * search.c (dfs_get_vbase_types): Ditto.
4201 * tree.c (propagate_binfo_offsets, layout_vbasetypes): Ditto.
4202 * decl.c (xref_tag): Use NULL_TREE instead of 0.
4203 * lex.c (make_lang_type): Ditto.
4204
4205Wed Mar 30 14:10:04 1994 Jason Merrill (jason@deneb.cygnus.com)
4206
4207 * decl.c (pushdecl): If pushing a C-linkage function, only do a
4208 push_overloaded_decl.
4209 (duplicate_decls): Standard overloading does not shadow built-ins.
4210
4211Tue Mar 29 00:54:18 1994 Jason Merrill (jason@deneb.cygnus.com)
4212
4213 * pt.c (end_template_decl): Don't call push_overloaded_decl.
4214
4215 * init.c (do_friend): Don't call push_overloaded_decl.
4216
4217 * decl.c (pushdecl): Call push_overloaded_decl for functions and
4218 function templates.
4219 (duplicate_decls): functions and function templates are not
4220 duplicates, but don't complain about calling this function to
4221 compare them.
4222 (push_overloaded_decl): Don't deal with linkage. Call
4223 duplicate_decls.
4224 (redeclaration_error_message): Deal with linkage.
4225
4226 * decl.c (start_function): If push_overloaded_decl returns an
4227 older version of the function, deal with it.
4228
4229 * decl.c (start_function): Be sure only to push_overloaded_decl
4230 for non-members.
4231
4232 * decl.c (grokfndecl): Put back clearing of DECL_CHAIN for
4233 methods.
4234 (start_function): Lose broken and redundant code for checking old
4235 decl.
4236
4237 * init.c (add_friend): Give line numbers of both friend decls
4238 when warning about re-friending.
4239
4240 * pt.c (tsubst): Use comptypes rather than == to compare the
4241 types of the method as declared and as defined, since default
4242 parameters may be different.
4243
4244 * call.c (build_method_call): Use brendan's candidate printing
4245 routine.
4246
4247 * decl.c (start_method): Methods defined in the class body are
4248 inline whether or not it's a template class.
4249
4250Mon Mar 28 16:39:26 1994 Jason Merrill (jason@deneb.cygnus.com)
4251
4252 * parse.y (initdcl0): Add "extern" to current_declspecs if
4253 have_extern_spec && ! used_extern_spcec.
4254
4255 * tree.c (really_overloaded_fn): A fn with more than one
4256 overload.
4257
4258 * pt.c (end_template_decl): Use really_overloaded_fn.
4259
4260 * decl.c (duplicate_decls): When smashing a decl into a previous
4261 definition, keep the old file and line.
4262 Don't deal with overloaded functions.
4263 Lose old code for checking arg types of functions.
4264 Check for overloaded C functions.
4265 (pushdecl): Deal with overloaded functions.
4266 (start_decl): Expect pushdecl to return an appropriate function decl.
4267 (start_function): Ditto.
4268 (push_overloaded_decl): Don't check for overloaded C functions.
4269
4270 * *.c: Stop using DECL_OVERLOADED, it being archaic.
4271 TREE_OVERLOADED should probably go, too.
4272
4273Mon Mar 28 14:00:45 1994 Ron Guilmette (rfg@netcom.com)
4274
4275 * typeck.c (comp_target_types): Call comp_target_parms with
4276 strict == 1.
4277
4278Sun Mar 27 00:07:45 1994 Jason Merrill (jason@deneb.cygnus.com)
4279
4280 * parse.y (empty_parms): Don't parse () as (...) in extern "C"
4281 sections if we're compiling with -ansi or -pedantic.
4282
4283 * decl.c (decls_match): Don't treat (int) and (int&) as matching.
4284
4285 * decl2.c (grokfield): Don't pedwarn twice about initializing
4286 field.
4287
4288 * decl.c (push_overloaded_decl): Warn about shadowing
4289 constructor.
4290 (redeclaration_error_message): Don't allow 'int a; int a;'
4291
4292 * cvt.c (build_up_reference): Only check for valid upcast if
4293 LOOKUP_PROTECT is set, not just any flag.
4294
4295Fri Mar 25 01:22:31 1994 Jason Merrill (jason@deneb.cygnus.com)
4296
4297 * lex.c (check_newline): When we see a #pragma implementation,
4298 also set it for the main input file.
4299
4300 * init.c (build_new): Convert array size argument to size_t.
4301
4302 * parse.y (primary): If we're doing a parenthesized type-id, call
4303 groktypename before passing it to build_new.
4304
4305 * call.c (build_method_call): Deal properly with const and
4306 volatile for instances of reference type.
4307
4308 * decl.c (store_return_init): Change 'if (pedantic) error' to 'if
4309 (pedantic) pedwarn'.
4310
4311 * decl.c (grokdeclarator): Don't complain about putting `static'
4312 and `inline' on template function decls.
4313
4314Thu Mar 24 23:18:19 1994 Jason Merrill (jason@deneb.cygnus.com)
4315
4316 * call.c (build_method_call): Preserve const & volatile on
4317 `this'.
4318
6060a796 4319Thu Mar 24 16:21:52 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4320
4321 * init.c (build_new, build_vec_delete): Use global new and delete
4322 for arrays.
4323 * decl2.c (delete_sanity): Ditto.
4324
4325Thu Mar 24 02:10:46 1994 Jason Merrill (jason@deneb.cygnus.com)
4326
4327 * cvt.c (convert_to_reference): If i is an lvalue,
4328 (int &)i -> *(int*)&i, as per 5.2.8p9 of the latest WP.
4329 (convert_force): Call convert_to_reference with LOOKUP_COMPLAIN.
4330
4331Wed Mar 23 17:45:37 1994 Jason Merrill (jason@deneb.cygnus.com)
4332
4333 * decl.c (duplicate_decls): Also propagate DECL_TEMPLATE_MEMBERS
4334 and DECL_TEMPLATE_INSTANTIATIONS.
4335
4336 * init.c (build_new): Handle array typedefs properly.
4337
6060a796 4338Wed Mar 23 18:23:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4339
4340 30th Cygnus<->FSF merge.
4341
6060a796 4342Wed Mar 23 00:46:24 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4343
4344 * class.c (modify_vtable_entries): Avoid running off the end of the
4345 virtuals list when processing a virtual destructor.
4346 * class.c (get_vtable_entry): Ditto.
4347
4348Wed Mar 23 00:23:59 1994 Jason Merrill (jason@deneb.cygnus.com)
4349
4350 * decl.c (duplicate_decls): If two template decls don't match,
4351 just return 0.
4352
4353Tue Mar 22 23:49:41 1994 Jason Merrill (jason@deneb.cygnus.com)
4354
4355 * typeck.c (convert_for_assignment): Don't pedwarn about
4356 converting function pointer to void *.
4357
6060a796 4358Tue Mar 22 22:23:19 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4359
4360 Major revamp of pointer to member functions. Cures major
4361 nonfunctionality when used in casts, and MI situations.
4362
4363 * cvt.c (convert_force): Update call site of build_ptrmemfunc.
4364 * typeck.c (convert_for_assignment): Ditto.
4365 * typeck2.c (digest_init): Ditto.
4366 * typeck2.c (process_init_constructor): Simplify by moving code into
4367 digest_init.
4368 * typeck2.c (digest_init): Do default_conversions on init value, if
4369 we are processing pointer to member functions.
4370 * class.c (get_vfield_offset): Now non-static. Convert bit offset
4371 into byte offset.
4372 * cp-tree.h (get_vfield_offset): Ditto.
4373 * typeck.c (get_member_function_from_ptrfunc): Convert down to right
4374 instance, before fetching vtable pointer.
4375 * typeck.c (get_delta_difference): New routine.
4376 * typeck.c (build_ptrmemfunc): Revamp to handle casting better, also
4377 get vtable pointer out of right subobject.
4378
6060a796 4379Tue Mar 22 17:56:48 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4380
4381 * search.c (get_binfo): Return NULL instead of aborting, when
4382 passed a UNION_TYPE.
4383
4384Tue Mar 22 12:44:54 1994 Jason Merrill (jason@deneb.cygnus.com)
4385
4386 These patches implement handling of redefinition/redeclaration of
4387 templates.
4388
4389 * typeck.c (comptypes): Simplify. All TEMPLATE_TYPE_PARMs are
4390 considered compatible.
4391
4392 * parse.y (template_def): Pass defn argument to end_template_decl.
4393
4394 * pt.c (end_template_decl): Add defn argument. Check for
4395 redefinition. Simplify.
4396
4397 * error.c (OB_UNPUT): New macro, to remove mistakes.
4398 (aggr_variety): Subroutine of dump_aggr_type.
4399
4400 * decl.c (decls_match): Support templates.
4401 (duplicate_decls): No longer static. Don't try to lay out template
4402 decls.
4403 (pushdecl): Simplify.
4404
4405 * cp-tree.h (DECL_TEMPLATE_MEMBERS): Use DECL_SIZE instead of
4406 DECL_INITIAL.
4407
4408Mon Mar 21 11:46:55 1994 Jason Merrill (jason@deneb.cygnus.com)
4409
4410 * error.c (dump_decl): Support class template decls.
4411 (dump_type): Don't adorn template type parms.
4412
4413 * decl.c (duplicate_decls): Save DECL_TEMPLATE_INFO from old decl
4414 if it was a definition.
4415 (redeclaration_error_message): Do the cp_error thang, and reject
4416 redefinition of templates.
4417
4418Mon Mar 21 19:36:06 1994 Per Bothner (bothner@kalessin.cygnus.com)
4419
4420 * decl.c (grokdeclarator): Set TREE_PUBLIC for METHOD_TYPE
4421 in FIELD context, when appropriate. Also,
4422 CLASSTYPE_INTERFACE_ONLY is irrelevant to setting TREE_PUBLIC.
4423 Also, simplify check for bogus return specifiers.
4424
4425Mon Mar 21 11:46:55 1994 Jason Merrill (jason@deneb.cygnus.com)
4426
4427 * parse.y (after_type_declarator1): Expand type_quals.
4428 (notype_declarator1): Ditto.
4429 (absdcl1): Ditto.
4430
4431Sat Mar 19 01:05:17 1994 Jason Merrill (jason@deneb.cygnus.com)
4432
4433 * decl.c (grokdeclarator): Treat class-local typedefs like static
4434 members; i.e. 'typedef int f();' means that f is a function type,
4435 not a method type.
4436
4437 * parse.y (decl): Change direct_* back to *.
4438 (type_id): Change direct_abstract_declarator to absdcl.
4439 (direct_declarator, direct_initdecls, direct_initdcl0): Remove again.
4440
4441Fri Mar 18 12:47:59 1994 Jason Merrill (jason@deneb.cygnus.com)
4442
4443 These two patches fix crashes on instantiating a template inside a
4444 function with C linkage or containing labels.
4445
4446 * class.c (current_lang_stacksize): No longer static.
4447
4448 * decl.c (struct saved_scope): Add lang_base, lang_stack,
4449 lang_name, lang_stacksize, and named_labels.
4450 (push_to_top_level): Save them.
4451 (pop_from_top_level): Restore them.
4452
4453 * gxxint.texi (Parser): Update.
4454
4455 These two patches finish moving the task of expr/declarator
4456 ambiguity resolution from the lexer to the parser, and add one more
4457 r/r conflict. START_DECLARATOR can now be nuked.
4458
4459 * parse.y (decl): Add "direct_" in typespec X rules.
4460 (direct_declarator): New nonterminal for
4461 direct_after_type_declarator and direct_notype_declarator.
4462 (direct_initdecls): Like initdecls, but uses direct_initdcl0.
4463 (direct_initdcl0): Like initdcl0, but uses direct_declarator.
4464 (named_parm): Add typespec direct_declarator rule.
4465
4466 * spew.c (yylex): #if 0 out START_DECLARATOR insertion.
4467
4468 These two patches disable some excessive cleverness on the part of
4469 g++; a non-class declaration always hides a class declaration in the
4470 same scope, and g++ was trying to unhide it depending on the
4471 enclosing expression.
4472
4473 * spew.c (arbitrate_lookup): #if 0 out.
4474
4475 * decl.c (lookup_name): Never call arbitrate_lookup.
4476
4477 * parse.y (complex_notype_declarator1): Add '*'
4478 complex_notype_declarator1 and '&' complex_notype_declarator1 rules.
4479
4480 * parse.y (complex_direct_notype_declarator): Restore id_scope
4481 see_typename TYPENAME rule, remove all other rules beginning with
4482 those tokens.
4483 (notype_unqualified_id): Add '~' see_typename IDENTIFIER rule.
4484
4485Thu Mar 17 17:30:01 1994 Jason Merrill (jason@deneb.cygnus.com)
4486
4487 These changes fix the compiler's handling of the functional cast/
4488 object declaration ambiguities in section 6.8 of the ARM. They also
4489 add 11 reduce/reduce conflicts. Sigh.
4490
4491 * parse.y: Add precedence decls for OPERATOR and '~'.
4492 (notype_unqualified_id): New nonterminal, encompasses all of the
4493 ANSI unqualified-id nonterminal except TYPENAMEs.
4494 (expr_or_declarator): New nonterminal to delay parsing of code like
4495 `int (*a)'.
4496 (primary): Use notype_unqualified_id.
4497 (decl): Add typespec initdecls ';' and typespec declarator ';'
4498 rules.
4499 (initdcl0): Deal with the above.
4500 (complex_notype_declarator1): A notype_declarator that is not also
4501 an expr_or_declarator.
4502 (complex_direct_notype_declarator): A direct_notype_declarator that
4503 doesn't conflict with expr_or_declarator. Use
4504 notype_unqualified_id. Remove id_scope see_typename TYPENAME rule.
4505 (functional_cast): New nonterminal, for the three functional cast
4506 rules. So that they can be moved after
4507 complex_direct_notype_declarator.
4508 (see_typename): Don't accept type_quals any more.
4509
4510 * decl2.c (reparse_decl_as_expr): New function to deal with parse
4511 nodes for code like `int (*a)++;'.
4512 (reparse_decl_as_expr1): Recursive subroutine of the above.
4513 (finish_decl_parsing): New function to deal with parse nodes for
4514 code like `int (*a);'. See the difference?
4515
6060a796 4516Thu Mar 17 12:16:10 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4517
4518 These changes break binary compatibility in code with classes
4519 that use virtual bases.
4520
4521 * search.c (dfs_get_vbase_types): Simplify and correct to make
4522 sure virtual bases are initialized in dfs ordering.
4523 * search.c (get_vbase_types): Simplify and make readable.
4524
4525Thu Mar 17 12:01:10 1994 Jason Merrill (jason@deneb.cygnus.com)
4526
4527 * parse.y: s/ typename / type_id /g
4528
4529Wed Mar 16 17:42:52 1994 Kung Hsu (kung@mexican.cygnus.com)
4530
4531 * parse.y (typespec): add SCOPE TYPENAME for global scoped
4532 type. e.g. ::B x.
4533
4534 * decl.c (complete_array_type): fix a bug that in -pendantic
4535 mode even there's no initializer, it will continue to build
4536 default index.
4537
4538Wed Mar 16 17:43:07 1994 Jason Merrill (jason@deneb.cygnus.com)
4539
4540 * parse.y (direct_notype_declarator): Add PTYPENAME rule, remove
4541 all of the scoped PTYPENAME rules.
4542
6060a796 4543Wed Mar 16 16:39:02 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4544
4545 * init.c (build_offset_ref): The value of A::typedef_name is
4546 always the TYPE_DECL, and never an error.
4547
4548Tue Mar 15 20:02:35 1994 Jason Merrill (jason@deneb.cygnus.com)
4549
4550 * search.c (get_base_distance_recursive): Two binfos can only
4551 represent the same object if they are both via_virtual.
4552
4553 * class.c (finish_base_struct): Check vbases for ambiguity, too.
4554
4555 * search.c (get_vbase_types): Accept binfo argument, too.
4556
4557Tue Mar 15 19:22:05 1994 Kung Hsu (kung@mexican.cygnus.com)
4558
4559 * decl.c (complete_array_type): complete TYPE_DOMAIN of the
4560 initializer also, because back-end requires it.
4561
4562Tue Mar 15 15:33:31 1994 Jason Merrill (jason@deneb.cygnus.com)
4563
4564 * error.c (dump_expr): Support member functions (which show up as
4565 OFFSET_REFs).
4566
6060a796 4567Mon Mar 14 16:24:36 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4568
4569 * init.c (build_new): Set the return type of multidimensional
4570 news correctly.
4571
4572Fri Mar 11 15:35:39 1994 Kung Hsu (kung@mexican.cygnus.com)
4573
4574 * call.c (build_method_call): if basetype not equal to type
4575 of the instance, use the type of the instance in building
4576 destructor.
4577
4578Thu Mar 10 17:07:10 1994 Kung Hsu (kung@mexican.cygnus.com)
4579
4580 * parse.y (direct_notype_declarator): add push_nested_type for
4581 'template_type SCOPED_NAME' rule.
4582
4583Tue Mar 8 00:19:58 1994 Jason Merrill (jason@deneb.cygnus.com)
4584
4585 * parse.y (parm): Add typed_declspec1 {absdcl, epsilon} rules.
4586
4587Sat Mar 5 04:47:48 1994 Jason Merrill (jason@deneb.cygnus.com)
4588
4589 * parse.y (regcast_or_absdcl): New nonterminal to implement late
4590 reduction of constructs like `int ((int)(int)(int))'.
4591 (cast_expr): Use it.
4592 (sub_cast_expr): Everything that can come after a cast.
4593 (typed_declspecs1): typed_declspecs that are not typed_typespecs.
4594 (direct_after_type_declarator): Lose PAREN_STAR_PAREN rule.
4595 (direct_abstract_declarator): Replace '(' parmlist ')' rule with
4596 '(' complex_parmlist ')' and regcast_or_absdcl.
4597 (parmlist): Split
4598 (complex_parmlist): Parmlists that are not also typenames.
4599 (parms_comma): Enabler.
4600 (named_parm): A parm that is not also a typename. Use declarator
4601 rather than dont_see_typename abs_or_notype_decl. Expand
4602 typed_declspecs inline.
4603 (abs_or_notype_decl): Lose.
4604 (dont_see_typename): Comment out.
4605 (bad_parm): Break out abs_or_notype_decl into two rules.
4606
4607Fri Mar 4 18:22:39 1994 Jason Merrill (jason@deneb.cygnus.com)
4608
4609 * decl2.c (reparse_decl_as_casts): New function to change parse
4610 nodes for `(int)(int)(int)' from "function taking int and returning
4611 function taking int and returning function taking int" to "... cast
4612 to int, cast to int, cast to int".
4613
4614 * decl2.c (reparse_decl_as_expr): Recursive function to change
4615 parse nodes for `A()()' from "function returning function returning
4616 A" to "A().operator()".
4617
4618 * parse.y (primary): Replace `typespec LEFT_RIGHT' rule with
4619 `typespec fcast_or_absdcl' rule.
4620 (fcast_or_absdcl): New nonterminal to implement late reduction of
4621 constructs like `A()()()()'.
4622 (typename): Replace `typespec absdcl1' rule with
4623 `typespec direct_abstract_declarator' rule.
4624 (direct_abstract_declarator): Replace `LEFT_RIGHT type_quals' rule
4625 with `fcast_or_absdcl type_quals' rule.
4626
6060a796 4627Fri Mar 4 16:18:03 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4628
4629 * tree.c (lvalue_p): Improve OFFSET_REF handling, so that it
4630 matches Section 5.5.
4631
4632Fri Mar 4 14:01:59 1994 Jason Merrill (jason@deneb.cygnus.com)
4633
4634 * error.c (dump_type_prefix): Don't print basetype twice for
4635 pmfs.
4636
6060a796 4637Fri Mar 4 13:24:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4638
4639 * typeck.c (convert_arguments): Handle setHandler(A::handlerFn)
4640 so that it is like setHandler(&A::handlerFn). Cures an `invalid
4641 lvalue in unary `&''.
4642
4643Fri Mar 4 11:15:59 1994 Jason Merrill (jason@deneb.cygnus.com)
4644
4645 * gxxint.texi (Copying Objects): New section discussing default
4646 op= problems with virtual inheritance.
4647
4648 * decl2.c (grokoptypename): Just does grokdeclarator and
4649 build_typename_overload, since the parser can't call grokdeclarator
4650 directly.
4651
4652 * method.c (build_typename_overload): Set IDENTIFIER_GLOBAL_VALUE
4653 and TREE_TYPE on generated identifiers.
4654
4655 * decl.c (grokdeclarator): Don't deal with TYPE_EXPRs anymore.
4656
4657 * parse.y (parm): Convert `const char *' to `__opPCc' here.
4658
4659 * error.c (dump_decl): Say sorry rather than my_friendly_aborting
4660 if we can't figure out what to do.
4661 (dump_type*): Ditto.
4662
4663 * typeck2.c (build_m_component_ref): 'component' is an expr, not
4664 a decl. Also move the IS_AGGR_TYPE check after the stripping of
4665 REFERENCE_TYPE.
4666
6060a796 4667Fri Mar 4 04:46:05 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4668
4669 * call.c (build_method_call): Handle b->setHandler(A::handlerFn)
4670 so that it is like b->setHandler(&A::handlerFn). Cures an `invalid
4671 lvalue in unary `&''.
4672
4673Thu Mar 3 12:38:15 1994 Jason Merrill (jason@deneb.cygnus.com)
4674
4675 * parse.y: Add precedence specification for START_DECLARATOR.
4676 (type_quals): Move before primary.
4677 (typename): Move before typed_declspecs, add 'typespec absdcl1' rule.
4678
4679 * decl2.c (grokoptypename): Lose.
4680
4681 * decl.c (grokdeclarator): Parse TYPE_EXPRs in the initial scan,
4682 rather than waiting until later.
4683
4684Wed Mar 2 14:12:23 1994 Jason Merrill (jason@deneb.cygnus.com)
4685
4686 * parse.y (unary_expr): Use 'typename' in 'new' rules, rather
4687 than expanding it inline.
4688 (typename): Expand empty option of (former) absdcl inline.
4689 (abs_or_notype_decl): Ditto.
4690 (absdcl): Lose empty rule.
4691 (conversion_declarator): New nonterminal for 'typename' of 'operator
4692 typename'.
4693 (operator_name): Use it instead of absdcl.
4694
4695 * parse.y: Add precedence declarations for SCOPED_TYPENAME,
4696 TYPEOF, and SIGOF.
4697 (typed_declspecs): Accept typed_typespecs, rather than typespec
4698 directly. Add rules with reserved_typespecquals.
4699 (reserved_declspecs): Don't accept typespecqual_reserved at the
4700 beginning of the list. The typed_declspecs rule will deal with this
4701 omission.
4702 (declmods): Accept nonempty_type_quals, rather than TYPE_QUAL
4703 directly.
4704
4705 * parse.y (direct_notype_declarator,
4706 direct_after_type_declarator, direct_abstract_declarator): Split up
4707 the declarator1 nonterminals to match the draft standard and avoid
4708 ambiguities.
4709 (new_type_id, new_declarator, direct_new_declarator,
4710 new_member_declarator): New nonterminals to implement the subset of
4711 'typename' allowed in new expressions.
4712 (unary_expr): Use new_type_id instead of typename.
4713 (after_type_declarator1, absdcl1): Fix semantics of member pointers.
4714 (abs_member_declarator, after_type_member_declarator): Lose.
4715
4716 * parse.y (absdcl1): Don't require parens around
4717 abs_member_declarator.
4718 (abs_member_declarator): Lose see_typename from rules.
4719 (after_type_member_declarator): Ditto.
4720
4721 * tree.c (get_identifier_list): New function, containing code
4722 previously duplicated in get_decl_list and list_hash_lookup_or_cons.
4723 (get_decl_list): Use it.
4724 (list_hash_lookup_or_cons): Ditto.
4725
4726 * parse.y (typed_declspecs, declmods): It's not necessary to hash
4727 the declspecs on class_obstack, so don't. This way typed_typespecs
4728 can reduce to typed_declspecs.
4729
4730Wed Mar 2 14:29:18 1994 Jason Merrill (jason@cygnus.com)
4731
4732 * cvt.c (build_up_reference): If we aren't checking visibility,
4733 also allow base->derived conversions.
4734
4735Mon Feb 28 15:14:29 1994 Per Bothner (bothner@kalessin.cygnus.com)
4736
4737 * typeck.c (build_c_cast): Remove bogus hack when converting
4738 to a reference type.
4739
4740 * cp-tree.h (lang_decl::vbase_init_list, DECL_VBASE_INIT_LIST):
4741 Removed, not used.
4742 (lang_stype::methods, lang_decl::next_method): New fields.
4743 (CLASSTYPE_METHODS, DECL_NEXT_METHOD): New macros.
4744 * decl.c (duplicate_decls): Preserve DECL_NEXT_METHOD.
4745
4746 * cp-tree.h, decl2.c (flag_vtable_hack): New flag.
4747 * decl2.c (finish_vtable_vardecl): If flag_vtable_hack,
4748 and !CLASSTYPE_INTERFACE_KNOWN, try to use the presence of
4749 a non-inline virtual function to control emitting of vtables.
4750 * class.c (finish_struct): Build CLASSTYPE_METHODS list.
4751 * search.c (build_vbase_vtables_init): Don't assemble_external
4752 (yet) if flag_vtable_hack.
4753 * class.c (build_vfn_ref): Ditto.
4754
4755Mon Feb 28 14:54:13 1994 Jason Merrill (jason@deneb.cygnus.com)
4756
4757 * parse.y (component_decl): Don't include "typed_declspecs
4758 declarator ';'" speedup, since it breaks enums.
4759
4760Fri Feb 25 15:43:44 1994 Per Bothner (bothner@kalessin.cygnus.com)
4761
4762 * class.c (finish_struct): Minor optimization for building
4763 fn_fields list.
4764
4765Fri Feb 25 15:23:42 1994 Jason Merrill (jason@deneb.cygnus.com)
4766
4767 * decl.c (start_function): Fix detection of function overloading.
4768
6060a796 4769Thu Feb 24 22:26:19 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4770
4771 * lex.c (check_newline): #pragma interface can take a string
4772 argument, just like #pragma implementation. #pragma implementation
4773 checks for garbage on the line, line #pragma interface does. Main
4774 input files do not auto implement like named files, #pragma
4775 implementation must be used explicitly.
4776
4777Thu Feb 24 17:09:01 1994 Jason Merrill (jason@deneb.cygnus.com)
4778
4779 * parse.y (components): Handle list of one again.
4780 (notype_components): Ditto.
4781 (after_type_declarator1): Take maybe_raises out again.
4782
4783 * gxxint.texi (Parser): Document additional r/r conflict.
4784
4785Wed Feb 23 14:42:55 1994 Jason Merrill (jason@deneb.cygnus.com)
4786
4787 * gxxint.texi (Parser): Add node.
4788
4789 * Makefile.in (stamp-parse): Update expected conflict count.
4790
4791 * parse.y (various): Replace "declmods declarator" with "declmods
4792 notype_declarator". The comment saying that "declmods declarator ';'"
4793 corresponds to "int i;" was wrong; it corresponds to "const i;".
4794 (component_decl): Add "typed_declspecs declarator ';'" rule; this
4795 *does* correspond to "int i;". Change "declmods components" to
4796 "declmods notype_components".
4797 (components): Don't deal with a list of one anymore.
4798 (notype_components): New nonterminal, corresponds to notype_declarator.
4799 ({after_,no}type_component_decl{,0}): More new nonterminals.
4800 ({after_,no}type_declarator): Fold in START_DECLARATOR token.
4801 Eliminates four reduce/reduce conflicts.
4802
4803 (expr): Depend on nontrivial_exprlist instead of nonnull_exprlist.
4804 (nontrivial_exprlist): New nonterminal: A list of at least two
4805 expr_no_commas's.
4806 (nonnull_exprlist): Depend on nontrival_exprlist.
4807 Eliminates four reduce/reduce conflicts.
4808
4809 (named_class_head): Move intermediate code block into separate
4810 nonterminal so that we can stick %prec EMPTY on it.
4811
4812 Add more %prec EMPTY's to eliminate remaining shift/reduce
4813 conflicts.
4814
4815 (after_type_declarator): Add maybe_raises to fndecl rules.
4816 (after_type_declarator_no_typename): Remove.
4817 For correctness.
4818
4819 Document remaining reduce/reduce conflicts.
4820
4821Tue Feb 22 12:10:32 1994 Jason Merrill (jason@deneb.cygnus.com)
4822
4823 * search.c (get_base_distance): Only bash BINFO_INHERITANCE_CHAIN
4824 (TYPE_BINFO (type)) if we care about the path.
4825
4826 * tree.c (lvalue_p): A COND_EXPR is an lvalue if both of the
4827 options are.
4828
6060a796 4829Mon Feb 21 19:59:40 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4830
4831 * Makefile.in (mostlyclean): lex.c is a source file, don't
4832 remove.
4833
4834Sat Feb 19 01:27:14 1994 Jason Merrill (jason@deneb.cygnus.com)
4835
4836 * parse.y: Eliminate 20 shift/reduce conflicts.
4837
4838Fri Feb 18 11:49:42 1994 Jason Merrill (jason@deneb.cygnus.com)
4839
4840 * pt.c (type_unification): Add subr argument; if set, it means
4841 that we are calling ourselves recursively, so a partial match is OK.
4842 (unify): Support pointers to methods and functions.
4843 (tsubst): Support method pointers.
4844 * decl.c (build_ptrmemfunc_type): No longer static, so that
4845 tsubst can get at it.
4846
4847 * init.c (is_aggr_typedef): Pretend template type parms are
4848 aggregates.
4849 * decl2.c (build_push_scope): If cname refers to a template type
4850 parm, just grin and nod.
4851
4852 * call.c (build_overload_call_real): Pass subr argument to
4853 type_unification.
4854 * pt.c (do_function_instantiation): Ditto.
4855 * class.c (instantiate_type): Ditto.
4856
4857 * search.c (get_base_distance): If BINFO is a binfo, use it and
4858 don't mess with its BINFO_INHERITANCE_CHAIN.
4859
4860 * cvt.c (convert_to_reference): Fix temporary generation.
4861 If ambiguous, return error_mark_node.
4862
4863 * init.c (build_new): Put back some necessary code.
4864
4865Thu Feb 17 15:39:47 1994 Jason Merrill (jason@deneb.cygnus.com)
4866
4867 * init.c (build_new): Deal with array types properly.
4868
4869 * search.c (get_binfo): Become a shell for get_base_distance.
4870 (get_binfo_recursive): Lose.
4871 (get_base_distance_recursive): Find the path to the via_virtual base
4872 that provides the most access.
4873 (get_base_distance): Ditto.
4874
4875 * parse.y (explicit_instantiation): Syntax is 'template class
4876 A<int>', not 'template A<int>'.
4877
4878 * typeck.c (convert_for_initialization): Remove bogus warning.
4879
4880 * parse.y (datadef): Revert patch of Oct 27.
4881
4882Thu Feb 17 15:12:29 1994 Per Bothner (bothner@kalessin.cygnus.com)
4883
4884 * class.c (build_vfn_ref): Cast delta field to ptrdiff_type_node,
4885 rather than integer_type_node. Does wonders for the Alpha.
4886
4887Thu Feb 17 13:36:21 1994 Jason Merrill (jason@deneb.cygnus.com)
4888
4889 * decl.c (build_ptrmemfunc_type): Make sure that the pmf type
4890 goes onto the same obstack as its target type.
4891
4892Wed Feb 16 00:34:46 1994 Jason Merrill (jason@deneb.cygnus.com)
4893
4894 * cvt.c (convert_to_reference): If converting via constructor
4895 on local level, go back to build_cplus_new approach.
4896
4897 * tree.c (build_cplus_new): If with_cleanup_p, set cleanup slot
4898 to error_mark_node to prevent expand_expr from building a cleanup
4899 for this variable.
4900
4901 * lex.c (default_assign_ref_body): Return *this from the memcpy
4902 version, too.
4903
4904 * decl.c (grok_reference_init): Just return if called with
4905 error_mark_node, don't worry about initializing non-const reference
4906 with temporary.
4907
4908 * cvt.c (convert_to_reference): Do the right thing for
4909 non-aggregate reference conversions, pedwarn when generating a
4910 non-const reference to a temporary.
4911
4912 * class.c (finish_struct): TYPE_HAS_COMPLEX_{INIT,ASSIGN}_REF and
4913 TYPE_NEEDS_CONSTRUCTING all depend on TYPE_USES_VIRTUAL_BASECLASSES
4914 again.
4915
4916Tue Feb 15 19:47:19 1994 Jason Merrill (jason@deneb.cygnus.com)
4917
4918 * decl.c (grok_reference_init): Pawn off a lot of the work on
4919 convert_to_reference. Generally do the right thing.
4920
4921 * cvt.c (convert_to_reference): Conform to the initial comment;
4922 i.e. don't create temps if decl != error_mark_node. Handle
4923 cleanups better for temps that do get created. Don't pretend
4924 that we can use an 'A' to initialize a 'const double &' just by
4925 tacking on a NOP_EXPR. Support LOOKUP_SPECULATIVELY.
4926
4927 * call.c (build_method_call): Set TREE_HAS_CONSTRUCTOR on
4928 constructor calls.
4929
4930Mon Feb 14 14:50:17 1994 Jason Merrill (jason@deneb.cygnus.com)
4931
4932 * decl.c (grok_reference_init): Make a temporary for initializing
4933 const reference from constant expression.
4934
4935Mon Feb 14 11:31:31 1994 Per Bothner (bothner@kalessin.cygnus.com)
4936
4937 * cp-tree.h, decl.c (set_identifier_local_value): Deleted function.
4938 * decl.c (pushdecl): Define decl in correct binding_level
4939 (which isn't always the inner_binding_level).
4940
4941 * cvt.c (build_up_reference): Don't ever call expand_aggr_init.
4942 It's ugly, and I don't think it's the right thing to do.
4943
4944 * cp-tree.h, class.c, decl.c, decl2.c, sp/search.c:
4945 Remove NEW_CLASS_SCOPING, assuming it is always 1.
4946 * decl.c (pop_decl_level): Removed; manually inlined.
4947
4948Sun Feb 13 19:04:56 1994 Jason Merrill (jason@deneb.cygnus.com)
4949
4950 * class.h (candidate): Add basetypes field.
4951
4952 * call.c (build_method_call): Do access checking after choosing a
4953 function, not before.
4954
4955 * Makefile.in (cvt.o, call.o, method.o): Depend on class.h.
4956 (mostlyclean): Remove ../cc1plus.
4957
4958Fri Feb 11 11:52:26 1994 Jason Merrill (jason@deneb.cygnus.com)
4959
4960 * class.c (finish_struct): Don't allow adjusting access to a field
4961 of a base class if a local field has the same name.
4962
4963 * error.c (dump_type_prefix): Output basetype for METHOD_TYPEs.
4964
4965hu Jan 13 17:55:51 EST 1994 Gnanasekaran Swaminathan (gs4t@virginia.edu)
4966
63718c49 4967 * cp-tree.h (DESTRUCTOR_NAME_P): do not confuse AUTO_TEMP names
7177d104
MS
4968 with destructor names when either NO_DOLLAR_IN_LABEL or
4969 NO_DOT_IN_LABEL are not defined.
4970
4971 Now `template <class T, T f(T&), const T*> class A {...}' works.
4972
4973 * pt.c (grok_template_type): substitute template parm types
4974 with actual types in complex type as well.
4975 (coerce_template_parms): update the grok_template_type ()
4976 function call.
4977
4978 * pt.c (tsubst): Traverse method list using DECL_CHAIN.
4979
4980 * decl.c (grok_op_properties): Allow operator++/-- to have
4981 default arguments.
4982
4983 * typeck2.c (store_init_value): Don't abort when called to
4984 initialize a type that needs constructing with a CONSTRUCTOR.
4985
4986 * init.c (expand_aggr_init_1, CONSTRUCTOR case): If
4987 store_init_value fails, build and expand an INIT_EXPR. If
4988 store_init_value succeeds, call expand_decl_init.
4989
6060a796 4990Fri Feb 11 02:49:23 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4991
4992 * class.c (build_vbase_path): Use complete_type_p instead of
4993 resolves_to_fixed_type_p to determine if the virtual bases are in
4994 their right place for the type of expr. Cures problem of thinking a
4995 virtual base class is one place, when it is in fact someplace else.
4996
6060a796 4997Fri Feb 11 00:26:46 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
4998
4999 * init.c (resolve_offset_ref): Make sure we first convert to
5000 intermediate type, if given, when dealing with members off `this'.
5001 Solves an incorrrect `type `foo' is not a base type for type
5002 `multiple'' when it is infact, a base type.
5003
6060a796 5004Thu Feb 10 21:49:35 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5005
5006 * class.c (modify_other_vtable_entries): Use get_binfo, instead
5007 of binfo_value. Solves problem with compiler giving a `base class
5008 `B' ambiguous in binfo_value (compiler error)' on complex MI
5009 herarchies, when a virtual function is first defied in a virtual
5010 base class.
5011
6060a796 5012Thu Feb 10 17:19:32 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5013
5014 * class.c (build_vbase_path): Don't complain about ambiguous
5015 intermediate conversion when converting down to a virtual base
5016 class, even if they might seem to be ambiguous.
5017
5018Thu Feb 10 12:18:26 1994 Jason Merrill (jason@deneb.cygnus.com)
5019
5020 * typeck2.c (build_functional_cast): #if 0 out constructor
5021 inheritance code, improve error messages.
5022
5023 * class.c (finish_base_struct): Complain about base with only
5024 non-default constructors in derived class with no constructors.
5025
5026 * decl.c (grokdeclarator): Fix detection of virtual new/delete.
5027
6060a796 5028Wed Feb 9 22:02:32 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5029
5030 * search.c (build_mi_virtuals, add_mi_virtuals,
5031 report_ambiguous_mi_virtuals): Removed unneeded code.
5032 * class.c (finish_struct_bits): Ditto.
5033
5034Wed Feb 9 11:27:17 1994 Jason Merrill (jason@deneb.cygnus.com)
5035
5036 * pt.c (end_template_instantiation): Push decl before
5037 pop_from_top_level.
5038
5039 * typeck2.c (build_m_component_ref): Make sure datum is of
5040 aggregate type.
5041
5042 * init.c (get_type_value): New function, returns
5043 IDENTIFIER_TYPE_VALUE or IDENTIFIER_CLASS_TYPE_VALUE or NULL_TREE.
5044
5045 * call.c (build_method_call): Don't die on call to destructor for
5046 non-type.
5047
5048 * decl.c (grokdeclarator): Complain about virtual op new and op
5049 delete, make static virtuals unvirtual instead of unstatic.
5050
5051 * typeck.c (build_c_cast): Also call default_conversion on
5052 methods.
5053
5054 * decl.c (grokdeclarator): Don't complain about anonymous
5055 bitfields.
5056
5057 * parse.y (simple_stmt, for loops): Move the continue point after
5058 the cleanups.
5059
5060 * class.c (finish_struct): Fix setting of
5061 TYPE_HAS_COMPLEX_INIT_REF.
5062
5063Tue Feb 8 13:21:40 1994 Jason Merrill (jason@deneb.cygnus.com)
5064
5065 * init.c (build_new): Deal with `new double (1)'.
5066
5067 * class.c (finish_struct): TYPE_HAS_COMPLEX_*_REF are supersets of
5068 TYPE_HAS_REAL_*_REF, but TYPE_HAS_COMPLEX_INIT_REF is independent of
5069 TYPE_NEEDS_CONSTRUCTING.
5070
5071 * decl.c (duplicate_decls): Propagate access decls.
5072
5073 * typeck2.c (process_init_constructor): Accept empty_init_node
5074 for initializing unions.
5075
5076 * class.c, lex.c, cp-tree.h: Use
5077 TYPE_HAS_COMPLEX_ASSIGN_REF where TYPE_HAS_REAL_ASSIGN_REF was used
5078 before, use TYPE_HAS_COMPLEX_INIT_REF for TYPE_NEEDS_CONSTRUCTING in
5079 some places.
5080
5081 * decl.c (finish_decl): Don't complain about uninitialized const
5082 if it was initialized before.
5083
5084Mon Feb 7 18:12:34 1994 Jason Merrill (jason@deneb.cygnus.com)
5085
5086 * lex.c (default_assign_ref_body): Don't deal with vbases for
5087 now.
5088
5089 * decl.c (finish_decl): Fix reversed logic for objects and other
5090 things that need to be constructed but have no initializer.
5091
5092 * class.c (finish_struct): Don't set TYPE_HAS_* flags that are
5093 set by grok_op_properties or finish_decl.
5094
5095 * decl.c: Don't warn about extern redeclared inline unless
5096 -Wextern-inline is given.
5097 * decl2.c (lang_decode_option): Ditto.
5098 * cp-tree.h: Ditto.
5099
5100Mon Feb 7 17:29:24 1994 Per Bothner (bothner@kalessin.cygnus.com)
5101
5102 * decl.c (pushdecl_with_scope): Fix thinko. Add forward
5103 declaration.
5104
5105 * decl.c (pushdecl_with_scope): New function.
5106 * decl.c (pushdecl_top_level): Use new function.
5107 * decl.c (pushtag): Initialize newdecl.
5108 * decl.c (pushtag): Push new type decl into correct scope.
5109
5110Mon Feb 7 14:42:03 1994 Jason Merrill (jason@deneb.cygnus.com)
5111
5112 * call.c, cvt.c, init.c, search.c, cp-tree.h:
5113 Eradicate LOOKUP_PROTECTED_OK.
5114
5115Mon Feb 7 13:57:19 1994 Per Bothner (bothner@kalessin.cygnus.com)
5116
5117 * decl.c (pushtag, xref_tag), cp-tree.h: Add extra parameter
5118 'globalize' to signify implicit declarations.
5119 * decl.c (globalize_nested_type, maybe_globalize_type): Removed.
5120 * decl.c (set_identifier_type_value_with_scope): New function.
5121 * decl.c (set_identifier_local_value): Simplify.
5122 * spew.c (yylex, do_addr): Modify to return a _DEFN if a
5123 forward declaration (followed by ';' and not preceded by 'friend').
5124 * class.c, decl.c, except.c, init.c, parse.y,
5125 pt.c, search.c: Add new argument to calls to xref_tag and
5126 pushtag.
5127
5128Mon Feb 7 00:22:59 1994 Jason Merrill (jason@deneb.cygnus.com)
5129
5130 * cp-tree.h (ACCESSIBLY_UNIQUELY_DERIVED_P): New macro, means what
5131 ACCESSIBLY_DERIVED_FROM_P meant before.
5132 (ACCESSIBLY_DERIVED_FROM_P): Now disregards ambiguity.
5133
5134 * cvt.c (build_up_reference): Call get_binfo with PROTECT == 1.
5135
5136 * search.c (get_base_distance_recursive): Members and friends of
5137 a class X can implicitly convert an X* to a pointer to a private or
5138 protected immediate base class of X.
5139 (get_binfo_recursive): Ditto.
5140 (get_base_distance): Ignore ambiguity if PROTECT < 0.
5141 (get_binfo): Lose multiple values of PROTECT.
5142 (compute_access): Protected is OK if the start of the
5143 search is an accessible base class of current_class_type.
5144
5145 * method.c (build_opfncall): Do check access on operator new here.
5146
5147 * decl.c (finish_function): Don't check access on operator new
5148 here.
5149
5150Sun Feb 6 14:06:58 1994 Jason Merrill (jason@deneb.cygnus.com)
5151
5152 * decl.c (xref_tag): The base of a derived struct is NOT always
5153 public. Duh.
5154
5155 * pt.c (do_explicit_instantiation): New function, called from
5156 parser to do explicit function instantiation.
5157 (type_unification): Allow the args list to be terminated with
5158 void_list_node.
5159 (do_pending_expansions): Look at i->interface for non-member
5160 templates.
5161
5162 * parse.y (datadef): Move explicit_instantiation here.
5163 (structsp): From here.
5164 (datadef): Complain about `int;'.
5165
5166Sun Feb 6 12:33:18 1994 Per Bothner (bothner@kalessin.cygnus.com)
5167
5168 * pt.c (end_template_instantiation), cp-tree.h: Remove unused
5169 second parameter, and simplify first from a TREE_LIST where
5170 we only care about its TREE_VALUE to just the value (an IDENTIFIER).
5171 * pt.c (instantiate_member_templates): Simplify argument list
5172 from a TREE_LIST to just an IDENTIFIER.
5173 * lex.c (yyprint): PRE_PARSED_CLASS_DECL is now just an IDENTIFIER.
5174 * parse.y (template_instantiate_once): Simplify accordingly.
5175 * decl.c (inner_binding_level): New. Use various places to
5176 simplify.
5177
5178Sun Feb 6 02:49:37 1994 Jason Merrill (jason@deneb.cygnus.com)
5179
5180 * typeck2.c (build_functional_cast): int() -> int(0).
5181
5182Sat Feb 5 00:53:21 1994 Jason Merrill (jason@deneb.cygnus.com)
5183
5184 * class.c (finish_struct): Don't do a bitwise copy for op= if the
5185 class has a virtual function table.
5186
5187 * typeck.c (convert_for_initialization): Restore warnings about
5188 not using defined op=. Should really be my_friendly_aborts, I
5189 s'pose.
5190
5191Fri Feb 4 14:21:00 1994 Jason Merrill (jason@deneb.cygnus.com)
5192
5193 * class.c (finish_struct): Tidy up conditions for doing bitwise
5194 copies of objects.
5195
5196 * decl.c (build_default_constructor): #if 0 out.
5197
5198 * *: Eradicate TYPE_GETS_{ASSIGNMENT,ASSIGN_REF,CONST_ASSIGN_REF,
5199 CONST_INIT_REF}, TYPE_HAS_REAL_CONSTRUCTOR.
5200
5201 * decl.c (grokdeclarator): Don't return void_type_node for
5202 friends being defined here.
5203
5204 * init.c (perform_member_init): Only do the init if it's useful.
5205
5206 * lex.c (default_copy_constructor_body): If we don't need to do
5207 memberwise init, just call __builtin_memcpy.
5208 (default_assign_ref_body): Ditto.
5209
5210 * decl.c (grokdeclarator): If friendp && virtualp, friendp = 0.
5211
6060a796 5212Fri Feb 4 13:02:56 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5213
5214 * lex.c (reinit_parse_for_method, cons_up_default_function):
5215 Don't give warn_if_unknown_interface warning when it came from a
5216 system header file.
5217 * pt.c (end_template_decl, instantiate_template): Ditto.
5218 * decl.c (start_decl): Ditto.
5219
5220Fri Feb 4 00:41:21 1994 Jason Merrill (jason@deneb.cygnus.com)
5221
5222 * decl.c (grokdeclarator): Don't try to set TYPE_WAS_ANONYMOUS on
5223 enums.
5224
5225 * decl2.c (constructor_name_full): Use IS_AGGR_TYPE_CODE instead of
5226 IS_AGGR_TYPE, since we don't know it's a type.
5227
5228Thu Feb 3 11:36:46 1994 Jason Merrill (jason@deneb.cygnus.com)
5229
5230 * decl.c (grokdeclarator): Don't complain about anonymous unions.
5231
5232 * cp-tree.h (TYPE_WAS_ANONYMOUS): This struct was originally
5233 anonymous, but had a name given to it by a typedef.
5234
5235 * decl.c (grokdeclarator): When renaming an anonymous struct, set
5236 TYPE_WAS_ANONYMOUS.
5237
5238 * decl2.c (constructor_name_full): Use TYPE_WAS_ANONYMOUS.
5239
5240 * cp-tree.h (DECL_UNDEFINED_FRIENDS): #if 0 out.
5241
5242 * init.c (xref_friend): Don't set up DECL_UNDEFINED_FRIENDS.
5243 (embrace_waiting_friends): Don't use DECL_UNDEFINED_FRIENDS.
5244
5245 * decl.c (grokdeclarator): Set TYPE_NESTED_NAME properly on nested
5246 anonymous structs that get typedef'd.
5247
5248 * decl.c (grokdeclarator): Always return void_type_node for
5249 friends.
5250
5251 * error.c (dump_function_decl): Don't use DECL_CLASS_CONTEXT for
5252 friends.
5253 (dump_function_decl): Don't print out default args for
5254 a function used in an expression.
5255
5256 * decl.c (grokdeclarator): Give error on abstract declarator used
5257 in an invalid context (i.e. `void (*)();').
5258
5259 * error.c (cp_line_of): Support _TYPE nodes.
5260 (cp_file_of): Ditto.
5261
5262 * cvt.c (build_up_reference): Don't abort if passed a SAVE_EXPR;
5263 it can happen for the RHS of an assignment stmt where the LHS is
5264 a COND_EXPR.
5265
5266 * init.c (expand_aggr_init_1): Deal with bracketed initializer
5267 lists properly.
5268
5269 * class.c (finish_struct): Deal with enumerators and typedefs
5270 again.
5271
5272Wed Feb 2 11:30:22 1994 Jason Merrill (jason@deneb.cygnus.com)
5273
5274 * class.c (finish_struct): Tidy up loop over fields.
5275
5276 * errfn.c (cp_thing): Don't advance twice after a format.
5277
5278 * class.c (finish_struct): Complain about needing a constructor
5279 if a member has only non-default constructors, and don't try to
5280 generate a default constructor.
5281
5282 * decl.c (finish_decl): Also do the constructor thing if
5283 TYPE_NEEDS_CONSTRUCTING is set (for arrays).
5284
5285 * search.c (unuse_fields): New function: mark all fields in this
5286 type unused.
5287 (dfs_unuse_fields): Helper function.
5288
5289 * class.c (pushclass): If the new class is the same as the old
5290 class, still unuse the fields.
5291 (unuse_fields): Move to search.c.
5292
5293 * decl.c (grok_op_properties): Add friendp argument.
5294 (grokfndecl): Pass it.
5295 (start_method): Ditto.
5296
5297 * decl2.c (delete_sanity): Add use_global_delete parameter to catch
5298 ::delete calls.
5299
5300 * parse.y (unary_expr): Pass new parameter to delete_sanity.
5301
5302 * lex.c (default_copy_constructor_body): Don't choke if the union
5303 has no fields.
5304 (default_assign_ref_body): Ditto.
5305
5306 * call.c (compute_conversion_costs_ansi): Do the right thing for
5307 ellipsis matches.
5308
5309 * decl.c (push_to_top_level): Optimize.
5310
5311 * decl.c (start_function): Look for the lexical scope of a friend
5312 in DECL_CLASS_CONTEXT.
5313
5314 * init.c (do_friend): Set DECL_CLASS_CONTEXT on global friends.
5315
5316Tue Feb 1 15:59:24 1994 Jason Merrill (jason@deneb.cygnus.com)
5317
5318 * cp-tree.h (TREE_GETS_PLACED_NEW): New macro.
5319
5320 * init.c (init_init_processing): Don't assign BIN/BID to the
5321 IDENTIFIER_GLOBAL_VALUEs of their respective operators.
5322 (build_new): Check TREE_GETS_PLACED_NEW.
5323
5324 * decl.c (grok_op_properties): Don't set TREE_GETS_NEW for a decl of
5325 op new with placement, set TREE_GETS_PLACED_NEW.
5326
5327 * cp-tree.h (ANON_UNION_P): New macro. Applies to decls.
5328
5329 * class.c (finish_struct): Don't treat anonymous unions like
5330 other aggregate members. Do synthesize methods for unions without
5331 a name, since they may or may not be "anonymous unions".
5332
5333 * decl2.c (grok_x_components): Wipe out memory of synthesized methods
5334 in anonymous unions.
5335
5336 * lex.c (default_copy_constructor_body): Support unions.
5337 (default_assign_ref_body): Ditto.
5338
5339Mon Jan 31 12:07:30 1994 Jason Merrill (jason@deneb.cygnus.com)
5340
5341 * cp-tree.h: Fix documentation of LOOKUP_GLOBAL, add prototypes.
5342
5343 * error.c (args_as_string): New function (%A), like type_as_string
5344 except NULL_TREE -> "..."
5345
5346 * call.c (build_overload_call_real): Fix for new overloading.
5347
5348 * decl.c (grok_op_properties): Set all of the TYPE_OVERLOADS_* flags
5349 here.
5350
5351 * parse.y (operator_name): Instead of here.
5352
5353 * typeck2.c (build_functional_cast): Treat a TREE_LIST as a list
5354 of functions.
5355
5356 * call.c (build_overload_call_real): Support LOOKUP_SPECULATIVELY.
5357
5358 * method.c (build_opfncall): Don't need to massage return value
5359 any more, call build_overload_call with all flags.
5360
5361 * typeck.c (build_x_binary_op): Put back speculative call to
5362 build_opfncall.
5363 (build_x_unary_op): Ditto.
5364 (build_x_conditional_expr): Ditto.
5365
6060a796 5366Mon Jan 31 10:00:30 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5367
5368 * cvt.c (build_type_conversion_1): Change call to pedwarn into
5369 warning, and conditionalize upon warn_cast_qual.
5370
5371Fri Jan 28 11:48:15 1994 Jason Merrill (jason@deneb.cygnus.com)
5372
5373 * search.c (lookup_field): If xbasetype is a binfo, copy it to
5374 avoid clobbering its inheritance info.
5375
5376 * call.c (build_method_call): Don't overwrite basetype_path with
5377 TYPE_BINFO (inst_ptr_basetype) if they have the same type.
5378
5379 * search.c (compute_access): Fix handling of protected inheritance
5380 and friendship with the enclosing class.
5381
5382 * typeck2.c (store_init_value): Allow passing of TREE_CHAIN for
5383 initialization of arbitrary variable.
5384
5385 * typeck2.c (build_functional_cast): Only try calling a method if
5386 one exists.
5387
5388 * decl.c (grokdeclarator): Move handling of constructor syntax
5389 initialization into first loop for generality.
5390 (parmlist_is_random): Lose.
5391
5392 * lex.c (cons_up_default_function): Set TREE_PARMLIST on arguments
5393 to default function.
5394
5395Thu Jan 27 19:26:51 1994 Jason Merrill (jason@deneb.cygnus.com)
5396
5397 * decl.c (grokparms): Abort if we get called with something we don't
5398 expect.
5399
6060a796 5400Thu Jan 27 17:37:25 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5401
5402 * call.c (build_overload_call_real): Change argument complain to
5403 flags to match style of rest of code. Pass it down to
5404 build_function_call_real as necessary.
5405 * call.c (build_overload_call, build_overload_call_maybe): Change
5406 argument complain to flags to match style of rest of code.
5407 * cp-tree.h (build_function_call_real): Added fourth flags
5408 argument.
5409 * cvt.c (convert_to_reference): Only give warning messages, if
5410 LOOKUP_COMPLAIN is set.
5411 * typeck.c (build_x_function_call): Change simple complain
5412 argument to build_overload_call_maybe and build_overload_call, to
5413 LOOKUP_COMPLAIN to match style of rest of code.
5414 * typeck2.c (build_functional_cast): Ditto.
5415 * typeck.c (build_function_call_real): Add flags, so that we can
5416 not complain, if we don't want to complain. Complain about
5417 arguments, if we are complaining, otherwise don't.
5418 * typeck.c (build_function_call, build_function_call_maybe):
5419 Stick in flags argument.
5420 * typeck.c (build_x_binary_op, build_x_unary_op,
5421 build_x_conditional_expr, build_x_compound_expr): Follow style of
5422 build_x_indirect_ref, as it is more correct and more common.
5423
5424Thu Jan 27 14:36:20 1994 Jason Merrill (jason@deneb.cygnus.com)
5425
5426 * call.c (build_method_call): Don't check for being called with
5427 a pointer.
5428
5429 * decl2.c (finish_file): Don't play with DECL_CLASS_CONTEXT for the
5430 static initializer function.
5431
5432 * init.c (build_member_call): Use convert_force here, too.
5433
5434 * search.c (compute_access): Only treat static members specially
5435 if they are referenced directly.
5436
5437Wed Jan 26 18:28:14 1994 Jason Merrill (jason@deneb.cygnus.com)
5438
5439 * gxxint.texi (Access Control): New node.
5440
5441 * search.c (current_scope): New function; returns whichever of
5442 current_class_type and current_function_decl is the most nested.
5443 (compute_access): Total overhaul to make it clearer and more
5444 correct. Don't use the cache for now; in the only situation where
5445 it was used before, it gained nothing. This frees up three of the
5446 DECL_LANG_FLAGs for possible other use!
5447
5448 * cp-tree.h: #if 0 out DECL_PUBLIC & friends.
5449
5450 * typeck.c (build_component_ref_1): Don't check DECL_PUBLIC.
5451
5452 * call.c (build_method_call): Use convert_force to cast `this' --
5453 rely on the access checking for the method itself.
5454
5455 * init.c (is_friend): Do the nesting thing, handle types. I am
5456 my own friend.
5457 (is_friend_type): Become a shell for is_friend.
5458 (add_friend): Never stick in ctype.
5459 Why are the friendship functions in init.c, anyway?
5460
6060a796 5461Wed Jan 26 17:50:00 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5462
5463 * cvt.c (build_type_conversion_1): Don't conditionalize call to
5464 pedwarn upon pedantic.
5465
6060a796 5466Wed Jan 26 17:20:46 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5467
5468 * cvt.c (convert_to_reference): Add 8.4.3 checking so that one
5469 gets a warning if one tries to initialize a non-const & from a
5470 non-lvalue.
5471 * cvt.c (convert_to_reference): Use %P format for argument
5472 numbers in warnings.
5473
6060a796 5474Wed Jan 26 14:35:06 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5475
5476 * init.c (build_delete): Follow style in call.c to construct the
5477 virtual call to the desctructor, as that code is right. Fixes a
5478 problem of the compiler saying a pointer conversion is ambiguous.
5479
5480Wed Jan 26 11:28:14 1994 Jason Merrill (jason@deneb.cygnus.com)
5481
5482 * cp-tree.h (VTABLE_NAME_P): Change other occurrence of
5483 VTABLE_NAME_FORMAT to VTABLE_NAME.
5484
5485 * *: s/visibility/access/g
5486
5487Tue Jan 25 18:39:12 1994 Jason Merrill (jason@deneb.cygnus.com)
5488
5489 * typeck.c (build_modify_expr): Don't smash references if INIT_EXPR.
5490
6060a796 5491Tue Jan 25 13:54:29 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5492
5493 * init.c (build_delete): Back out Jan 17th & 18th pacthes, as
5494 they break libg++.
5495
5496Tue Jan 25 13:11:45 1994 Jason Merrill (jason@deneb.cygnus.com)
5497
5498 * decl.c (duplicate_decls): Fix pointer arithmetic.
5499
5500Mon Jan 24 15:50:06 1994 Chip Salzenberg (chip@fin.uucp)
5501
5502 [ cp-* changes propagated from c-* changes in 940114 snapshot ]
5503 * cp-parse.y (maybe_attribute): Allow multiple __attribute__
5504 clauses on a declaration.
5505
5506Mon Jan 24 17:06:23 1994 Jason Merrill (jason@deneb.cygnus.com)
5507
5508 * class.c (finish_struct): Do synthesize methods for anon
5509 structs, just not unions.
5510
5511Mon Jan 24 13:50:13 1994 Kung Hsu (kung@mexican.cygnus.com)
5512
5513 * decl.c (xref_tag): handle anonymous nested type.
5514 * decl.c (globalize_nested_type): add no globalize bit check.
5515 * spew.c (hack_more_ids) : templated nested decl not push top
5516 level.
5517
5518 * parse.y : get rid of 'goto do_components'. It is much better
5519 for debugging.
5520
5521 * decl.c (is_anon_name): get rid of the function and use the
5522 macro ANON_AGGRNAME_P.
5523 * pt.c : ditto.
5524
5525Fri Jan 21 14:06:02 1994 Jason Merrill (jason@deneb.cygnus.com)
5526
5527 * class.c (finish_struct): Don't synthesize any methods for
5528 anonymous structs/unions.
5529
5530 * typeck.c (build_modify_expr): Don't treat pmf's as class objects.
5531
5532Thu Jan 20 18:56:46 1994 Jason Merrill (jason@deneb.cygnus.com)
5533
5534 * method.c (build_opfncall): Call build_indirect_ref on
5535 synthesized instance for operator delete.
5536
5537 * pt.c (type_unification): Don't abort if called with a list of
5538 types in ARGS.
5539
5540 * class.c (instantiate_type): Deal with function templates.
5541
5542Thu Jan 20 16:55:35 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
5543
5544 * Makefile.in (CC): Default to cc not gcc.
5545
5546Thu Jan 20 13:47:54 1994 Jason Merrill (jason@deneb.cygnus.com)
5547
5548 * typeck.c (build_modify_expr): Call constructor if appropriate.
5549
5550 * decl.c (push_to_top_level): Clear out class-level bindings cache.
5551
5552Wed Jan 19 13:51:22 1994 Jason Merrill (jason@deneb.cygnus.com)
5553
5554 * call.c (resolve_scope_to_name): Work recursively (previously only
5555 looked down one level).
5556
5557 * lex.c (do_pending_inlines): If we're still dealing with the last
5558 batch of inlines, don't start working on a new one.
5559
5560 * Makefile.in (stamp-parse): Update conflict count.
5561 (TAGS): Fix.
5562
5563 * parse.y (explicit_instantiation): New rule; implements
5564 'template A<int>' syntax (though not 'template foo(int)' yet).
5565 (structsp): Add explicit_instantiation.
5566
5567Tue Jan 18 13:53:05 1994 Jason Merrill (jason@deneb.cygnus.com)
5568
5569 * class.c (finish_struct, etc.): Simplify decision to synthesize
5570 a destructor.
5571
5572 * call.c, class.c, cp-tree.h, decl.c, init.c,
5573 ptree.c, search.c, typeck.c, typeck2.c: Nuke
5574 TYPE_NEEDS_CONSTRUCTOR (change all calls to TYPE_NEEDS_CONSTRUCTING).
5575 * init.c (expand_aggr_init_1): Don't try non-constructor methods
5576 of initializing objects.
5577 (build_new): Don't try other methods if the constructor lookup fails.
5578
5579 * class.c (finish_base_struct): Set cant_have_default_ctor and
5580 cant_synth_copy_ctor properly.
5581 (finish_struct): Ditto.
5582
5583Mon Jan 17 13:58:18 1994 Jason Merrill (jason@deneb.cygnus.com)
5584
5585 * typeck.c (build_modify_expr_1): #if 0 out again.
5586 (build_modify_expr): #if 0 out memberwise init code again.
5587
5588 * lex.c (default_copy_constructor_body): Be const-correct.
5589 (default_assign_ref_body): Ditto.
5590
5591 * init.c (perform_member_init): Use TYPE_HAS_CONSTRUCTOR to decide
5592 whether or not to use it, rather than TYPE_NEEDS_CONSTRUCTING.
5593 (expand_aggr_init): Disable silent conversion from initializer list
5594 to list of args for a constructor.
5595
5596 * class.c (base_info): Lose needs_default_ctor.
5597 (finish_base_struct): Ditto.
5598 (finish_struct): Ditto.
5599
5600 * decl.c (init_decl_processing): Don't turn off flag_default_inline
5601 just because flag_no_inline is on.
5602 (finish_decl): Use TYPE_HAS_CONSTRUCTOR to decide to use
5603 constructor.
5604
5605 * class.c (finish_struct): Synthesize default ctor whenever
5606 allowed.
5607
5608 * Makefile.in (TAGS): Don't try to run etags on cp-parse.y.
5609
6060a796 5610Sat Jan 15 18:34:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5611
5612 * Makefile.in, configure: Handle the C++ front-end in a
5613 subdirectory.
5614 * cp-*: Move C++ front-end to cp/*.
5615
5616Fri Jan 14 14:09:37 1994 Jason Merrill (jason@deneb.cygnus.com)
5617
5618 * cp-typeck.c (build_function_call_real): Modify to match other
5619 instances of taking the address of the function.
5620
5621 * cp-class.c (finish_struct): Set TYPE_HAS_REAL_CONSTRUCTOR to 1 if
5622 there are non-synthesized constructors.
5623 Only set TYPE_NEEDS_CONSTRUCTOR if TYPE_HAS_REAL_CONSTRUCTOR.
5624 Always generate copy constructor if possible.
5625
5626 * cp-tree.h (lang_type): Add has_real_constructor bitfield.
5627 (TYPE_HAS_REAL_CONSTRUCTOR): Define.
5628
5629 * cp-lex.c (default_copy_constructor_body): Use init syntax
5630 for all bases.
5631
5632 * cp-type2.c (store_init_value): Only give error for initializer list
5633 if TYPE_HAS_REAL_CONSTRUCTOR.
5634
5635Thu Jan 13 15:38:29 1994 Jason Merrill (jason@deneb.cygnus.com)
5636
5637 * cp-tree.h (DECL_SYNTHESIZED): Add defn.
5638 (lang_decl): Add synthesized bitfield to decl_flags.
5639
5640 * cp-lex.c (cons_up_default_function): Use DECL_SYNTHESIZED to mark
5641 artificial methods, rather than a line # of 0.
5642
5643Fri Jan 14 18:25:29 1994 Kung Hsu (kung@mexican.cygnus.com)
5644
5645 * cp-decl (xref_tag): fix a bug in conflict type.
5646 * cp-parse.y : add SCOPED_NAME for uninstantiated template nested
5647 type reference.
5648 * cp-spew.c (yylex) : generated SCOPED_NAME token.
5649 * cp-lex.c (yyprint): handle SCOPED_NAME.
5650
6060a796 5651Fri Jan 14 17:00:29 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5652
5653 * cp-decl.c (pushdecl): Revert patch from Jan 11 19:33:03, as it is
5654 not right.
5655
5656Thu Jan 13 14:00:35 1994 Kung Hsu (kung@mexican.cygnus.com)
5657
5658 * cp-decl2.c (grok_x_components): fix a bug that enum type does not
5659 have type_flags.
5660
6060a796 5661Thu Jan 13 11:39:34 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5662
5663 Ensure that all vtable pointers are initialized with all the right
5664 values.
5665
5666 * cp-class.c (is_normal): Changed to reflect new meaning of
5667 CLASSTYPE_VFIELD_PARENT.
5668 * cp-class.c (maybe_fixup_vptrs): Use of
5669 CLASSTYPE_NEEDS_VIRTUAL_REINIT here is misguided. Use
5670 BINFO_MODIFIED instead.
5671 * cp-class.c (finish_struct): Changed to reflect new meaning of
5672 CLASSTYPE_VFIELD_PARENT.
5673 * cp-decl.c (get_binfo_from_vfield): Removed, unneeded now.
5674 * cp-decl.c (finish_function): Use init_vtbl_ptrs, instead of open
5675 coding it here.
5676 * cp-init.c (init_vfields): Changed name to init_vtbl_ptrs, and
5677 re-implement.
5678 * cp-init.c (emit_base_init): Use new name init_vtbl_ptrs.
5679 * cp-tree.h (vfield_parent): Changed to integer.
5680 * cp-tree.h (CLASSTYPE_VFIELD_PARENT): Changed docs to reflect new
5681 meaning.
5682 * cp-tree.h (init_vtbl_ptrs): Added init_vtbl_ptrs.
5683
5684Wed Jan 12 18:24:16 1994 Kung Hsu (kung@mexican.cygnus.com)
5685
5686 * cp-decl.c (xref_tag): re-implement globalize nested type.
5687 * cp-decl2.c (grok_x_components): ditto.
5688 * cp-parse.y: ditto.
5689 * cp-tree.h (lang_type): add no_globalize bit in type_flags.
5690
5691Wed Jan 12 14:08:09 1994 Jason Merrill (jason@deneb.cygnus.com)
5692
5693 * cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC on friend
5694 decls with a definition attached.
5695
5696 * cp-typeck.c (build_modify_expr): Undo previous change in the case
5697 of INIT_EXPRs.
5698
5699Tue Jan 11 19:33:03 1994 Jason Merrill (jason@deneb.cygnus.com)
5700
5701 * cp-typeck.c (build_modify_expr): Replace code for generating
5702 assignment semantics for classes with an error.
5703 (build_modify_expr_1): #if 0 out.
5704
5705 * cp-decl.c (pushdecl): Patch bogus design of pushdecl
5706 behavior for overloaded functions (it doesn't push anything).
5707
5708 * cp-class.c (finish_struct): When generating default op=,
5709 set TYPE_HAS_ASSIGNMENT.
5710
6060a796 5711Mon Jan 10 18:48:06 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
5712
5713 * cp-cvt.c (convert): Make {double, clashing enum} -> enum
5714 invalid.
5715 * cp-typeck.c (convert_for_assignment): Simplify.
5716 * cp-decl2.c (warn_enum_clash): Removed.
5717 * invoke.texi (-Wenum-clash): Removed.
5718 * toplev.c (-Wenum-clash): Removed.
5719
5720Mon Jan 10 17:48:37 1994 Kung Hsu (kung@mexican.cygnus.com)
5721
5722 * cp-decl.c (finish_decl): fix incorrect popclass call.
5723
5724 * cp-decl.c (is_anon_name): new function, check whether the name
5725 is anonymous name generated by compiler.
5726 * cp-decl.c (grokdeclarator): allow nested SCOPE_REF
5727 * cp-spew.c (hack_more_ids): handle nested type in template.
5728 * cp-parse.y : handle nested type reference in uninstantiated
5729 template.
5730 * cp-call.c (build_method_call): handle uninstantiated template
5731 case.
5732 * cp-pt.c (search_nested_type_in_tmpl): new function, search nested
5733 type in template.
5734 * cp-pt.c (lookup_nested_type_by_name): new function, lookup nested
5735 type by name.
5736 * cp-pt.c (tsubst): handle nested type search by name.
5737
5738Mon Jan 10 14:32:18 1994 Jason Merrill (jason@deneb.cygnus.com)
5739
5740 * cp-init.c (build_member_call): Propagate qualifiers to new type.
5741
5742 * cp-call.c (build_method_call): Count functions the new way.
5743
5744Fri Jan 7 19:03:26 1994 Jason Merrill (jason@deneb.cygnus.com)
5745
5746 * cp-decl.c (pushtag): Set DECL_ASSEMBLER_NAME for nested classes,
5747 too.
5748
5749Tue Jan 4 16:45:51 1994 Kung Hsu (kung@cirdan.cygnus.com)
5750
5751 * cp-parse.y: change to handle whether to globalize nested class.
5752 * cp-decl.c(xref_tag, maybe_globalize_type): Ditto.
5753
5754Mon Jan 3 22:22:32 1994 Gerald Baumgartner (gb@cygnus.com)
5755
5756 * Makefile.in cp-call.c cp-class.c cp-cvt.c cp-decl.c cp-decl2.c
5757 cp-error.c cp-init.c cp-lex.c cp-lex.h cp-method.c cp-parse.y
5758 cp-spew.c cp-tree.c cp-tree.h cp-type2.c cp-typeck.c cp-xref.c
5759 gplus.gperf toplev.c: Incorporated C++ signature extension.
5760 * cp-sig.c: New file, contains most of signature processing.
5761 * cp-hash.h: Regenerated from gplus.gperf.
5762
5763 * gcc.1 g++.1: Added explanation for the `-fhandle-signatures'
5764 and `-fno-handle-signatures' command line flags.
5765
5766 * gcc.texi: Changed the last-modification date.
5767 * invoke.texi: Added `-fhandle-signatures' in the list of
5768 C++ language options. Added explanation for this option.
5769
6060a796 5770Tue Dec 28 21:10:03 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
5771
5772 * cp-init.c (expand_vec_init): Remove comptypes test, as it is too
5773 harsh here.
5774
6060a796 5775Tue Dec 28 13:42:22 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
5776
5777 * cp-pt.c (do_pending_expansions): Decide to expand a template
5778 member function, based upon it's class type, not the class type of
5779 the first place it was declared.
5780
6060a796 5781Tue Dec 28 05:42:31 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
5782
5783 * cp-class.c (is_normal): New routine, use to determine when the
5784 given binfo is the normal one. (The one that should have the simple
5785 vtable name.)
5786 * cp-class.c (modify_other_vtable_entries): Use DECL_ASSEMBLER_NAME
5787 to check if two fndecls are `the same'. Sometimes this routine can
5788 modify the main vtable, and normal should be 1, in that case, so use
5789 is_normal() to determine if this is the main vtable for the class.
5790 Don't recurse down virtual bases, as they are shared, and we take
5791 care of them elsewhere.
5792 * cp-class.c (modify_vtable_entries): If we have already updated the
5793 vtable with the new virtual, don't do it again.
5794 * cp-class.c (finish_struct): Set CLASSTYPE_VFIELD_PARENT as
5795 appropriate. Do virtual function overriding in virtual bases, after
5796 normal overriding, so that the base function list in DECL_VINDEX is
5797 not overridden, before we have a chance to run through the list.
5798 Use DECL_ASSEMBLER_NAME to check if two fndecls are `the same'.
5799 Make sure we pass the right address into modify_vtable_entries.
5800 * cp-tree.h (CLASSTYPE_VFIELD_PARENT): New field to indicate which
5801 binfo is the one that has the vtable that we based our vtable on.
5802
5803Fri Dec 24 09:40:52 1993 Michael Tiemann (tiemann@blues.cygnus.com)
5804
5805 * cp-typeck.c (c_expand_start_case): Use default_conversion to
5806 convert expression from reference type if necessary.
5807
5808Wed Dec 22 17:58:43 1993 Jason Merrill (jason@deneb.cygnus.com)
5809
5810 * cp-typeck.c (build_unary_op): Make sure that it's a TREE_LIST before
5811 trying to read its TREE_VALUE.
5812
5813 * cp-class.c (finish_struct_methods): Clear DECL_IN_AGGR_P here.
5814 (finish_struct): Instead of here.
5815
5816Tue Dec 21 14:34:25 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
5817
5818 * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't
5819 have TYPE_PTRMEMFUNC_P set before we try to build its
5820 CLASSTYPE_ID_AS_LIST.
5821 (get_decl_list): Likewise, when trying to read it.
5822
5823 * cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined.
5824 (VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT.
5825
5826Mon Dec 20 13:35:03 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
5827
5828 * cp-typeck.c (rationalize_conditional_expr): New function.
5829 (unary_complex_lvalue): Use it.
5830 (build_modify_expr): Use it, since trying to do an ADDR_EXPR of it
5831 with build_unary_op won't cut it. Don't wrap the COND_EXPR with a
5832 SAVE_EXPR either.
5833
5834 * cp-decl2.c (explicit_warn_return_type): Deleted variable.
5835 (lang_decode_option): Set warn_return_type, not explicit_*, for
5836 -Wreturn-type and -Wall. This is what rest_of_compilation uses to
5837 decide if it should go into jump_optimize or not.
5838 * cp-tree.h (explicit_warn_return_type): Deleted.
5839 * cp-decl.c (grokdeclarator): Use warn_return_type, not explicit_*.
5840 (finish_function): Also complain about no return in a non-void fn if
5841 we're being pedantic (don't rely on use of -Wreturn-type).
5842
5843Fri Dec 17 15:45:46 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
5844
5845 * cp-decl.c (grokdeclarator): Forbid declaration of a function as
5846 static if it's being done inside another function.
5847
5848 * cp-search.c (compute_visibility): Check for friendship both ways.
5849
5850Fri Dec 17 14:28:25 1993 Jason Merrill (jason@deneb.cygnus.com)
5851
5852 * cp-cvt.c (build_default_binary_type_conversion): Make error
5853 messages more helpful.
5854
5855 * cp-error.c (op_as_string): New function, returns "operator =="
5856 given EQ_EXPR or suchlike.
5857
5858Fri Dec 17 13:28:11 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
5859
5860 * cp-call.c (print_n_candidates): New function.
5861 (build_overload_call_real): Use it when we complain about a call
5862 being ambiguous.
5863
5864Fri Dec 17 12:41:17 1993 Jason Merrill (jason@deneb.cygnus.com)
5865
5866 * cp-call.c (build_method_call): Fix checking for static call
5867 context.
5868
5869 * cp-method.c (build_opfncall): Call build_indirect_ref on argument
5870 to operator new.
5871
5872 * cp-init.c (build_new): Don't mess with rval when building
5873 indirect ref.
5874
5875Thu Dec 16 16:48:05 1993 Kung Hsu (kung@cirdan.cygnus.com)
5876
5877 * cp-lex.c (default_assign_ref_body): add check when TYPE_NESTED_
5878 NAME(type) may not be exist. It's not a problem for old compiler.
5879
5880Thu Dec 16 14:46:06 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
5881
5882 * cp-tree.h (CLASSTYPE_ALTERS_VISIBILITIES_P): Delete macro, it's
5883 never used for anything.
5884 (struct lang_type, member type_flags): Delete field
5885 `alters_visibility', and up `dummy' by 1.
5886 * cp-class.c (finish_base_struct): Delete code that copies the
5887 setting of CLASSTYPE_ALTERS_VISIBILITIES_P.
5888 (finish_struct): Delete code that sets it.
5889
5890Thu Dec 16 14:44:39 1993 Jason Merrill (jason@deneb.cygnus.com)
5891
5892 * cp-decl.c, cp-init.c, cp-typeck.c: Fix arguments to
5893 build_method_call that I messed up before.
5894
5895 * cp-search.c (get_base_distance): If protect > 1, allow immediate
5896 private base.
5897
5898 * cp-class.c (finish_base_struct): Set cant_synth_* correctly.
5899 (finish_struct): Ditto. Well, nigh-correctly; it won't deal
5900 properly with the case where a class contains an object of an
5901 ambiguous base class which has a protected op=. Should be fixed
5902 when the access control code gets overhauled.
5903 (finish_struct_methods): Set TYPE_HAS_NONPUBLIC_* correctly.
5904
5905Thu Dec 16 12:17:06 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
5906
5907 * cp-lex.c (real_yylex): Turn the code back on that deals with
5908 __FUNCTION__ and __PRETTY_FUNCTION__. Don't use lookup_name, to
5909 avoid the ambiguity problems that led to it being turned off in the
5910 first place.
5911
5912 * cp-method.c (hack_identifier): Also check for a TYPE_PTRMEMFUNC_P
5913 to see if something is a method.
5914
6060a796 5915Wed Dec 15 18:35:58 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
5916
5917 * cp-typeck.c (build_modify_expr): Avoid error messages on small
5918 enum bit fields.
5919 * cp-typeck.c (convert_for_assignment): Add missing argument to
5920 cp_warning and cp_pedwarn calls.
5921
5922Wed Dec 15 18:25:32 1993 Jason Merrill (jason@deneb.cygnus.com)
5923
5924 * cp-parse.y (member_init): ANSI C++ doesn't forbid old-style base
5925 initializers; it's just anachronistic.
5926
5927 * cp-decl.c (finish_decl): Don't require external-linkage arrays
5928 to have a complete type at declaration time when pedantic.
5929
5930Tue Dec 14 11:37:23 1993 Jason Merrill (jason@deneb.cygnus.com)
5931
5932 * cp-decl.c (pushdecl): Don't set DECL_CONTEXT if it's already set.
5933
5934 * cp-call.c (build_method_call): Don't dereference pointer given
5935 as instance.
5936
5937 * cp-decl.c (finish_function): Don't pass pointer to
5938 build_method_call.
5939 (finish_function): Ditto.
5940
5941 * cp-typeck.c (build_x_function_call): Ditto.
5942
5943 * cp-method.c (build_component_type_expr): Ditto.
5944
5945 * cp-init.c (build_member_call): Ditto.
5946 (build_new): Ditto.
5947
5948Mon Dec 13 18:04:33 1993 Kung Hsu (kung@cirdan.cygnus.com)
5949
5950 * cp-decl.c (xref_tag): fix regression created by changes made
5951 in Dec. 7 1993.
5952 * cp-decl.c (xref_defn_tag): fix parallel nested class problem.
5953
5954Fri Dec 10 12:40:25 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
5955
5956 * cp-call.c (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print
5957 out the final evaluation of the function, so we can see if ELLIPSIS,
5958 USER, and EVIL were set at the end.
5959
5960 * cp-call.c (convert_harshness_ansi): When the parm isn't an lvalue,
5961 only go for setting TRIVIAL_CODE if we are dealing with types that
5962 are compatible.
5963
6060a796 5964Thu Dec 9 18:27:22 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
5965
5966 * cp-decl.c (flag_huge_objects): New flag to allow large objects.
5967 * toplev.c (lang_options): Ditto.
5968 * cp-decl2.c (flag_huge_objects, lang_f_options): Ditto.
5969 * cp-decl.c (delta_type_node): New type for delta entries.
5970 * cp-tree.h (delta_type_node): Ditto.
5971 * cp-decl.c (init_decl_processing): Setup delta_type_node.
5972 * cp-decl.c (init_decl_processing, build_ptrmemfunc_type): Use
5973 delta_type_node instead of short_integer_type_node.
5974 * cp-class.c (build_vtable_entry): Ditto.
5975
5976Thu Dec 9 16:19:05 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
5977
5978 * cp-tree.h (OPERATOR_TYPENAME_P): Define outside of
5979 NO_{DOLLAR,DOT} macro checks, so it always gets defined.
5980 (VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL.
5981
6060a796 5982Wed Dec 8 17:38:06 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
5983
5984 * cp-decl.c (finish_decl): Make sure things that can go into
5985 "common", do go into common, if -fcommon is given.
5986
5987Wed Dec 8 13:01:54 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
5988
63718c49
GB
5989 * cp-call.c (print_harshness) [DEBUG_MATCHING]: New function.
5990 (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print out
5991 argument matching diagnostics to make instantly clear what the
5992 compiler is doing.
7177d104
MS
5993
5994 * cp-call.c (convert_harshness_ansi): If the parm isn't an lvalue,
5995 then check to see if the penalty was increased due to
5996 signed/unsigned mismatch, and use a TRIVIAL_CODE if it wasn't.
5997
5998Tue Dec 7 18:29:14 1993 Kung Hsu (kung@cirdan.cygnus.com)
5999
6000 * cp-decl.c (xref_tag, pushtag): Fix nested class search/resolution
6001 problem.
6002
6003Tue Dec 7 16:09:34 1993 Jason Merrill (jason@deneb.cygnus.com)
6004
6005 * cp-class.c (finish_struct): Before synthesizing methods, if no
6006 methods have yet been declared then set nonprivate_method. Don't
6007 set non_private method after synthesizing a method.
6008
6009 * cp-lex.c (extract_interface_info): If flag_alt_external_templates
6010 is set, tie emitted code to the location of template instantiation,
6011 rather than definition.
6012
6013 * cp-tree.h: Declare flag_alt_external_templates.
6014
6015 * cp-decl2.c (lang_decode_option): Support -falt-external-templates.
6016
6017 * toplev.c (lang_options): Ditto.
6018
6019 Mon Oct 4 12:50:02 1993 Chip Salzenberg (chip@fin.uucp)
6020
63718c49
GB
6021 [changes propagated from 930810 snapshot]
6022 * cp-decl.c (init_decl_processing): Make long long available for use
6023 as SIZE_TYPE and PTRDIFF_TYPE.
6024 (finish_decl): Allow file-scope static incomplete array.
6025 (grokdeclarator): Don't pass on const and volatile fron function
6026 value type to function type.
6027 Warn here for volatile fn returning non-void type.
6028 * cp-parse.y (attrib): Accept attributes `volatile' with alias
6029 `noreturn', and `const'.
6030 * cp-typeck.c (default_conversion): Don't lose const and volatile.
6031 (build_binary_op_nodefault): Generate pedantic warning for comparison
6032 of complete pointer type with incomplete pointer type.
6033 (build_c_cast): Be careful that null pointer constant be INTEGER_CST.
7177d104
MS
6034
6035Tue Dec 7 10:46:48 1993 Jason Merrill (jason@deneb.cygnus.com)
6036
6037 * cp-init.c (expand_vec_init): When creating a temporary for copying
6038 arrays, use the type of the source, not the target.
6039
6040 * cp-cvt.c (convert): Pass an argument for errtype to
6041 convert_to_reference.
6042
6043 * cp-error.c (dump_expr, COMPONENT_REF & CALL_EXPR): Deal with
6044 methods, -> and `this'.
6045
6046Mon Dec 6 17:12:33 1993 Jason Merrill (jason@deneb.cygnus.com)
6047
6048 * cp-error.c (parm_as_string): New function; returns `this' or arg
6049 number. Corresponds to %P.
6050 (dump_expr): Deal with method calls.
6051
6052 * cp-cvt.c (convert_to_reference): Stop using warn_for_assignment.
6053 * cp-typeck.c (convert_for_assignment): Ditto.
6054 (warn_for_assignment): Lose.
6055
6056Mon Dec 6 11:33:35 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
6057
6058 * cp-call.c (ideal_candidate_ansi): Delete code that was never
6059 doing anything useful. Instead, sort once, and DO NOT wipe
6060 out any codes with EVIL_CODE, since that's what we use as a
6061 marker for the end of the list of candidates.
6062
6063 * cp-cvt.c (convert_to_aggr): Make sure to always set H_LEN.
6064
6065Mon Dec 6 12:49:17 1993 Jason Merrill (jason@deneb.cygnus.com)
6066
6067 * cp-init.c (get_aggr_from_typedef): New function, like
6068 is_aggr_typedef but returns the _TYPE.
6069
6070 * cp-call.c, cp-init.c, cp-method.c: Eradicate err_name.
6071
6072Sun Dec 5 18:12:48 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
6073
6074 * cp-lex.c (readescape): Pedwarn when a hex escape is out of range.
6075
6076Thu Nov 25 23:50:19 1993 Chip Salzenberg (chip@fin.uucp)
6077
6078 Delay language context change until beginning of next decl.
6079
6080 * cp-lex.h (c_header_level): Removed.
6081 (pending_lang_change): Declared.
6082 * cp-lex.c (c_header_level): Renamed from in_c_header, made static.
6083 (pending_lang_change): Defined.
6084 (check_newline): Rework code that recognizes line number and
6085 filename changes. Instead of pushing and popping lang context,
6086 increment and decrement pending_lang_change.
6087 (do_pending_lang_change): Push and pop lang context according
6088 to value of pending_lang_change.
6089 * cp-parse.y (extdefs): Use lang_extdef instead of extdef.
6090 (extdef): Same as extdef, but call do_pending_lang_change() first.
6091
6092Mon Nov 15 15:39:15 1993 Chip Salzenberg (chip@fin.uucp)
6093
6094 * cp-typeck.c (build_binary_op_nodefault): Warn for ordered
6095 compare of ptr with 0 only if pedantic in both cases.
6096
6097Thu Nov 25 13:31:37 1993 Chip Salzenberg (chip@fin.uucp)
6098
6099 Reinstate the below patch, which got lost in the Cygnus merge:
6100 Tue Nov 23 13:59:24 1993 Hallvard B Furuseth (hbf@durin.uio.no)
6101 * cp-parse.y (maybe_type_qual): Don't fail to set $$.
6102
6103Wed Nov 17 19:03:30 1993 Chip Salzenberg (chip@fin.uucp)
6104
6105 * cp-parse.y (attrib): Allow "ident(ident)" like the C front end.
6106
6107Fri Oct 22 20:43:37 1993 Paul Eggert (eggert@twinsun.com)
6108
6109 * cp-lex.c (real_yylex): Diagnose floating point constants
6110 that are too large.
6111
6112Wed Nov 17 19:10:37 1993 Chip Salzenberg (chip@fin.uucp)
6113
6114 * cp-type2.c (build_functional_cast): ARM page 16: When a class
6115 and an object, function or enumerator are declared in the same
6116 scope with the same name, the class name is hidden.
6117
6118Wed Nov 17 19:07:18 1993 Chip Salzenberg (chip@fin.uucp)
6119
6120 * cp-call.c (convert_harshness_ansi): Distinguish float, double,
6121 and long double from each other when overloading.
6122 (compute_conversion_costs_{ansi,old}, build_method_call,
6123 build_overlay_call_real, convert_to_aggr): Always set and
6124 always use H_LEN member of candidate structure.
6125
6126Mon Oct 11 23:10:53 1993 Chip Salzenberg (chip@fin.uucp)
6127
6128 * cp-decl.c (duplicate_decls): Note redeclarations of library
6129 functions, and generate distinct warnings for them.
6130
6131Mon Oct 4 12:26:49 1993 Chip Salzenberg (chip@fin.uucp)
6132
6133 Support format warnings in G++.
6134
6135 * cp-tree.h: Protect against multiple inclusion.
6136 Declare all public functions in c-common.c (copy from c-tree.h).
6137 (STDIO_PROTO): Define.
6138 (warn_format): Declare.
6139 (record_format_info): Remove declaration.
6140 * cp-decl.c (init_decl_processing): Call init_function_format_info.
6141 * cp-decl2.c (lang_decode_option): Make "-Wall" include warn_format.
6142 * cp-typeck.c (build_function_call_real): Call check_function_format.
6143 (record_format_info): Remove -- obsolete stub.
6144
6145Sat Jul 24 12:04:29 1993 Chip Salzenberg (chip@fin.uucp)
6146
6147 * cp-decl.c (duplicate_decls): Don't warn for non-extern var decl
6148 following an extern one (for -Wredundant-decls).
6149 * cp-parse.y (primary): In statement expression case, if compstmt
6150 returns something other than a BLOCK, return it unchanged.
6151
6152Thu Dec 2 20:44:58 1993 Chip Salzenberg (chip@fin.uucp)
6153
6154 * cp-decl.c (warn_extern_redeclared_static): New function made
6155 from code extracted from pushdecl.
6156 (duplicate_decls, pushdecl): Call new function.
6157 (lookup_name_current_level): Allow for IDENTIFIER_GLOBAL_VALUE
6158 to be a TREE_LIST when function is declared in 'extern "C" {}'.
6159
6160Fri Dec 3 16:01:10 1993 Jason Merrill (jason@deneb.cygnus.com)
6161
6162 * cp-class.c (duplicate_tag_error): Use cp_error.
6163 (finish_base_struct): Check for ambiguity with direct base, and don't
6164 generate op= or copy ctor if it exists.
6165
6166Fri Dec 3 15:32:34 1993 Kung Hsu (kung@cirdan.cygnus.com)
6167
6168 * cp-init.c (expand_member_init): when initializer name is null,
6169 don't try to build it now because emit_base_init will handle it.
6170
6171Fri Dec 3 12:28:59 1993 Jason Merrill (jason@deneb.cygnus.com)
6172
6173 * cp-lex.c (init_lex): Initialize input_filename to "<internal>" for
6174 code such as ExceptionHandler::operator=.
6175
6176Fri Dec 3 10:32:08 1993 Jason Merrill (jason@deneb.cygnus.com)
6177
6178 * cp-decl.c (grokdeclarator): Don't try to print out dname when
6179 complaining about arrays of references if decl_context==TYPENAME,
6180 since it will be null.
6181
6182 * cp-decl2.c: Default to flag_ansi_overloading.
6183
6184Thu Dec 2 18:05:56 1993 Kung Hsu (kung@cirdan.cygnus.com)
6185
6186 * cp-call.c (build_method_call): use binfo from instance if it's
6187 different from binfo (basetype_path) passed from above.
6188
6189Thu Dec 2 12:48:36 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
6190
6191Wed Nov 17 19:14:29 1993 Chip Salzenberg (chip@fin.uucp)
6192
6193 cp-error.c (dump_expr): Use unsigned chars to output a
6194 TREE_REAL_CST in hex.
6195
6196Thu Dec 2 11:05:48 1993 Jason Merrill (jason@deneb.cygnus.com)
6197
6198 * cp-class.c (finish_struct): Fix typo in setting
6199 cant_synth_asn_ref.
6200
6201 * cp-tree.h (TYPE_NESTED_NAME): New macro, does
6202 DECL_NESTED_TYPENAME (TYPE_NAME (NODE)).
6203
6204 * cp-lex.c (default_copy_constructor_body): Change
6205 DECL_NAME (TYPE_NAME (btype)) to TYPE_NESTED_NAME (btype).
6206 (default_assign_ref_body): Ditto.
6207 (default_copy_constructor_body): Call operator= explicitly for
6208 base classes that have no constructor.
6209
6210Thu Dec 2 10:47:15 1993 Michael Tiemann (tiemann@blues.cygnus.com)
6211
6212 * cp-call.c (build_method_call): If the instance variable is
6213 converted to error_mark_node when we're trying to convert it to the
6214 base type of a method we're looking up, return error_mark_node.
6215
6216Thu Dec 2 10:41:16 1993 Torbjorn Granlund (tege@cygnus.com)
6217
6218 * cp-typeck.c (build_binary_op_nodefault): In *_DIV_EXPR *_MOD_EXPR
6219 cases, tests for unsigned operands by peeking inside a NOP_EXPR.
6220
6221Wed Dec 1 13:33:34 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
6222
6223 * cp-call.c (compute_conversion_costs_ansi): Use the size of struct
6224 harshness_code, not the size of short, for clearing out the
6225 ansi_harshness.
6226
6227 * cp-call.c (print_candidates): New function.
6228 (build_method_call): When we had some candidates, but didn't get a
6229 usable match, don't report that we got an error with the first
6230 candidate. Instead, say there were no matches, and list the
6231 candidates with print_candidates. In the second pass, make sure we
6232 clear out ever_seen, so we can accurately count the number of
6233 functions that qualified.
6234
6235Wed Dec 1 09:53:59 1993 Torbjorn Granlund (tege@cygnus.com)
6236
6237 * cp-typeck.c (build_binary_op_nodefault): Shorten for *_MOD_EXPR
6238 only if op1 is known to be != -1.
6239 (build_binary_op_nodefault): Handle *_DIV_EXPR likewise.
6240
6241Tue Nov 30 14:07:26 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
6242
6243 * cp-method.c (hack_identifier): If the field itself is private, and
6244 not from a private base class, say so.
6245
6246Mon Nov 29 03:00:56 1993 Jason Merrill (jason@deneb.cygnus.com)
6247
6248 * cp-decl.c (grokdeclarator): Always warn on initialization of
6249 const member.
6250
6251Wed Nov 24 00:49:35 1993 Jason Merrill (jason@deneb.cygnus.com)
6252
6253 * cp-class.c (finish_struct): Set TYPE_GETS_CONST_* properly.
6254 (finish_base_struct): Set cant_synth_asn_ref properly.
6255
6256 * cp-lex.c (cons_up_default_function): Add section for operator=.
6257 (default_assign_ref_body): New function, mostly cribbed from
6258 default_copy_constructor_body.
6259
6260 * cp-class.c (base_info): Add members cant_synth_copy_ctor,
6261 cant_synth_asn_ref, no_const_asn_ref.
6262 (finish_base_struct): Update no_const_asn_ref, note that you should
6263 update cant_synth_*, propagate TYPE_GETS_ASSIGN_REF.
6264 (finish_struct): Add decls for cant_synth_*, no_const_asn_ref, and
6265 initialize them properly. Set no_const_asn_ref properly. Set
6266 cant_synth_* in some of the situations where they should be set.
6267 Propagate TYPE_GETS_ASSIGN_REF. Use cant_synth_copy_ctor. Add call
6268 to cons_up_default_function for operator=.
6269
6060a796 6270Tue Nov 23 20:24:58 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
6271
6272 * cp-cvt.c (convert_force): Add code to perform casting of pointer
6273 to member function types.
6274 * cp-typeck.c (build_ptrmemfunc): Add FORCE parameter to indicate
6275 when the conversion should be done, regardless.
6276 * cp-tree.h (build_ptrmemfunc): Ditto.
6277 * cp-type2.c (digest_init): Ditto.
6278 * cp-typeck.c (convert_for_assignment): Ditto.
6279
6280Tue Nov 23 18:06:58 1993 Jason Merrill (jason@deneb.cygnus.com)
6281
6282 * cp-error.c (dump_expr): Do the right thing for variables of
6283 reference type.
6284
6285 * cp-decl.c (grok_op_properties): Set TYPE_HAS_ASSIGN_REF
6286 and its kin properly.
6287 (xref_tag): Propagate TYPE_GETS_ASSIGN_REF.
6288
6060a796 6289Tue Nov 23 12:26:13 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
6290
6291 * cp-method.c (build_opfncall): Don't count pointer to member
6292 functions as aggregates here, as we don't want to look up methods in
6293 them. The compiler would core dump if we did, as they don't have
6294 normal names.
6295 * cp-typeck.c (build_indirect_ref): Improve wording on error
6296 message.
6297
6298Mon Nov 22 14:22:23 1993 Jason Merrill (jason@deneb.cygnus.com)
6299
6300 * cp-decl.c (grok_op_properties): Allow operator?: with pedwarn
6301 (since it's supported in other compiler bits).
6302
6303 * cp-method.c (report_type_mismatch): Use cp_error; ignore err_name
6304 argument.
6305
6306 * cp-error.c (dump_function_decl): Don't print return type for
6307 constructors and destructors.
6308
6309 * cp-cvt.c (cp_convert_to_pointer): Import code from
6310 convert_to_pointer so we can return error_mark_node in the case of an
6311 error, and to allow more meaningful error messages.
6312 (build_type_conversion): Don't go through void* when trying
6313 to convert to a pointer type.
6314
6315 * cp-decl.c (grokfndecl): Move call to grok_op_properties back
6316 after grokclassfn so that it's dealing with the right decl.
63718c49 6317 (grok_op_properties): Don't assert !methodp for op new and op delete.
7177d104
MS
6318
6319 * cp-init.c (build_delete): Don't use TYPE_BUILT_IN (there are now
6320 no uses of it in the compiler).
6321
6322 * cp-call.c (build_scoped_method_call): Fix for destructors of simple
6323 types.
6324 (build_method_call): Ditto.
6325
6326Fri Nov 19 12:59:38 1993 Jason Merrill (jason@deneb.cygnus.com)
6327
6328 * cp-tree.c (count_functions): Abstraction function.
6329
6330 * cp-call.c (build_overload_call_real): Deal with new overloading
6331 properly, remove dead code.
6332
6333 * gcc.c (default_compilers): Generate and use .ii files in the
6334 intermediate stage of compiling C++ source.
6335
6336Fri Nov 19 11:26:09 1993 Jim Wilson (wilson@sphagnum.cygnus.com)
6337
6338 * cp-expr.c (cplus_expand_expr): Make call_target a valid memory
6339 address before using it, so it can be later safely compared.
6340
6341Fri Nov 12 15:30:27 1993 Jason Merrill (jason@deneb.cygnus.com)
6342
6343 * cp-pt.c (tsubst): Deal with new overloading.
6344
6345 * cp-typeck.c (fntype_p): is the arg function type?
6346 (comp_target_parms): pedwarn on conversion from (anything) to (...).
6347 (build_x_function_call): Deal with new overloading.
6348
6349 * cp-tree.c (decl_list_length): Deal with new overloading.
6350 (decl_value_member): Like value_member, but for DECL_CHAINs.
6351
6352 * cp-decl.c (duplicate_decls): Deal with new overloading.
6353 (start_decl): Ditto.
6354
6355 * cp-class.c (instantiate_type): Deal with new overloading.
6356
6357 * cp-call.c (convert_harshness_ansi): Deal with new overloading.
6358 (convert_harshness_old): Deal with new overloading.
6359 (build_overload_call_real): Ditto.
6360
6361Mon Nov 8 13:50:49 1993 Jason Merrill (jason@deneb.cygnus.com)
6362
6363 * cp-tree.c (get_unique_fn): New function; returns FUNCTION_DECL
6364 if unambiguous, NULL_TREE otherwise.
6365 (get_first_fn): Returns the first appropriate FUNCTION_DECL.
6366 (is_overloaded_fn): Returns whether or not the passed tree is
6367 a function or list of functions.
6368
6369 * cp-init.c (init_init_processing): use `get_first_fn' to find
6370 the FUNCTION_DEFN for new and delete.
6371
6372 * cp-decl.c (push_overloaded_decl): Use new overloading strategy, cut
6373 code size in half (I spit on special cases).
6374
6375Tue Sep 7 20:03:33 1993 Jason Merrill (jason@deneb.cygnus.com)
6376
6377 * cp-decl.c: Allow references and template type parameters as well
6378
6379Local Variables:
6380eval: (auto-fill-mode)
6381left-margin: 8
6382fill-column: 76
6383End:
This page took 0.665253 seconds and 5 git commands to generate.