[strub] improve handling of indirected volatile parms [PR112938]
[official-gcc.git] / gcc / cp / ChangeLog-1993
blob45ca571fae846f90ab81109a9e93a7b1b9894b5c
1 Tue Dec 28 21:10:03 1993  Mike Stump  <mrs@cygnus.com>
3         * cp-init.c (expand_vec_init): Remove comptypes test, as it is too
4         harsh here.
6 Tue Dec 28 13:42:22 1993  Mike Stump  <mrs@cygnus.com>
8         * cp-pt.c (do_pending_expansions): Decide to expand a template
9         member function, based upon it's class type, not the class type of
10         the first place it was declared.
12 Tue Dec 28 05:42:31 1993  Mike Stump  <mrs@cygnus.com>
14         * cp-class.c (is_normal): New routine, use to determine when the
15         given binfo is the normal one.  (The one that should have the simple
16         vtable name.)
17         * cp-class.c (modify_other_vtable_entries): Use DECL_ASSEMBLER_NAME
18         to check if two fndecls are `the same'.  Sometimes this routine can
19         modify the main vtable, and normal should be 1, in that case, so use
20         is_normal() to determine if this is the main vtable for the class.
21         Don't recurse down virtual bases, as they are shared, and we take
22         care of them elsewhere.
23         * cp-class.c (modify_vtable_entries): If we have already updated the
24         vtable with the new virtual, don't do it again.
25         * cp-class.c (finish_struct): Set CLASSTYPE_VFIELD_PARENT as
26         appropriate.  Do virtual function overriding in virtual bases, after
27         normal overriding, so that the base function list in DECL_VINDEX is
28         not overridden, before we have a chance to run through the list.
29         Use DECL_ASSEMBLER_NAME to check if two fndecls are `the same'.
30         Make sure we pass the right address into modify_vtable_entries.
31         * cp-tree.h (CLASSTYPE_VFIELD_PARENT): New field to indicate which
32         binfo is the one that has the vtable that we based our vtable on.
34 Fri Dec 24 09:40:52 1993  Michael Tiemann  <tiemann@blues.cygnus.com>
36         * cp-typeck.c (c_expand_start_case): Use default_conversion to
37         convert expression from reference type if necessary.
39 Wed Dec 22 17:58:43 1993  Jason Merrill  <jason@deneb.cygnus.com>
41         * cp-typeck.c (build_unary_op): Make sure that it's a TREE_LIST before
42         trying to read its TREE_VALUE.
44         * cp-class.c (finish_struct_methods): Clear DECL_IN_AGGR_P here.
45         (finish_struct): Instead of here.
47 Tue Dec 21 14:34:25 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
49         * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't
50         have TYPE_PTRMEMFUNC_P set before we try to build its
51         CLASSTYPE_ID_AS_LIST.
52         (get_decl_list): Likewise, when trying to read it.
54         * cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined.
55         (VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT.
57 Mon Dec 20 13:35:03 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
59         * cp-typeck.c (rationalize_conditional_expr): New function.
60         (unary_complex_lvalue): Use it.
61         (build_modify_expr): Use it, since trying to do an ADDR_EXPR of it
62         with build_unary_op won't cut it.  Don't wrap the COND_EXPR with a
63         SAVE_EXPR either.
65         * cp-decl2.c (explicit_warn_return_type): Deleted variable.
66         (lang_decode_option): Set warn_return_type, not explicit_*, for
67         -Wreturn-type and -Wall.  This is what rest_of_compilation uses to
68         decide if it should go into jump_optimize or not.
69         * cp-tree.h (explicit_warn_return_type): Deleted.
70         * cp-decl.c (grokdeclarator): Use warn_return_type, not explicit_*.
71         (finish_function): Also complain about no return in a non-void fn if
72         we're being pedantic (don't rely on use of -Wreturn-type).
74 Fri Dec 17 15:45:46 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
76         * cp-decl.c (grokdeclarator): Forbid declaration of a function as
77         static if it's being done inside another function.
79         * cp-search.c (compute_visibility): Check for friendship both ways.
81 Fri Dec 17 14:28:25 1993  Jason Merrill  <jason@deneb.cygnus.com>
83         * cp-cvt.c (build_default_binary_type_conversion): Make error
84         messages more helpful.
86         * cp-error.c (op_as_string): New function, returns "operator =="
87         given EQ_EXPR or suchlike.
89 Fri Dec 17 13:28:11 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
91         * cp-call.c (print_n_candidates): New function.
92         (build_overload_call_real): Use it when we complain about a call
93         being ambiguous.
95 Fri Dec 17 12:41:17 1993  Jason Merrill  <jason@deneb.cygnus.com>
97         * cp-call.c (build_method_call): Fix checking for static call
98         context.
100         * cp-method.c (build_opfncall): Call build_indirect_ref on argument
101         to operator new.
103         * cp-init.c (build_new): Don't mess with rval when building
104         indirect ref.
106 Thu Dec 16 16:48:05 1993  Kung Hsu  <kung@cirdan.cygnus.com>
108         * cp-lex.c (default_assign_ref_body): Add check when TYPE_NESTED_
109         NAME(type) may not be exist.  It's not a problem for old compiler.
111 Thu Dec 16 14:46:06 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
113         * cp-tree.h (CLASSTYPE_ALTERS_VISIBILITIES_P): Delete macro, it's
114         never used for anything.
115         (struct lang_type, member type_flags): Delete field
116         `alters_visibility', and up `dummy' by 1.
117         * cp-class.c (finish_base_struct): Delete code that copies the
118         setting of CLASSTYPE_ALTERS_VISIBILITIES_P.
119         (finish_struct): Delete code that sets it.
121 Thu Dec 16 14:44:39 1993  Jason Merrill  <jason@deneb.cygnus.com>
123         * cp-decl.c, cp-init.c, cp-typeck.c: Fix arguments to
124         build_method_call that I messed up before.
126         * cp-search.c (get_base_distance): If protect > 1, allow immediate
127         private base.
129         * cp-class.c (finish_base_struct): Set cant_synth_* correctly.
130         (finish_struct): Likewise.  Well, nigh-correctly; it won't deal
131         properly with the case where a class contains an object of an
132         ambiguous base class which has a protected op=.  Should be fixed
133         when the access control code gets overhauled.
134         (finish_struct_methods): Set TYPE_HAS_NONPUBLIC_* correctly.
136 Thu Dec 16 12:17:06 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
138         * cp-lex.c (real_yylex): Turn the code back on that deals with
139         __FUNCTION__ and __PRETTY_FUNCTION__.  Don't use lookup_name, to
140         avoid the ambiguity problems that led to it being turned off in the
141         first place.
143         * cp-method.c (hack_identifier): Also check for a TYPE_PTRMEMFUNC_P
144         to see if something is a method.
146 Wed Dec 15 18:35:58 1993  Mike Stump  <mrs@cygnus.com>
148         * cp-typeck.c (build_modify_expr): Avoid error messages on small
149         enum bit fields.
150         * cp-typeck.c (convert_for_assignment): Add missing argument to
151         cp_warning and cp_pedwarn calls.
153 Wed Dec 15 18:25:32 1993  Jason Merrill  <jason@deneb.cygnus.com>
155         * cp-parse.y (member_init): ANSI C++ doesn't forbid old-style base
156         initializers; it's just anachronistic.
158         * cp-decl.c (finish_decl): Don't require external-linkage arrays
159         to have a complete type at declaration time when pedantic.
161 Tue Dec 14 11:37:23 1993  Jason Merrill  <jason@deneb.cygnus.com>
163         * cp-decl.c (pushdecl): Don't set DECL_CONTEXT if it's already set.
165         * cp-call.c (build_method_call): Don't dereference pointer given
166         as instance.
168         * cp-decl.c (finish_function): Don't pass pointer to
169         build_method_call.
170         (finish_function): Likewise.
172         * cp-typeck.c (build_x_function_call): Likewise.
174         * cp-method.c (build_component_type_expr): Likewise.
176         * cp-init.c (build_member_call): Likewise.
177         (build_new): Likewise.
179 Mon Dec 13 18:04:33 1993  Kung Hsu  <kung@cirdan.cygnus.com>
181         * cp-decl.c (xref_tag): Fix regression created by changes made
182         in Dec. 7 1993.
183         * cp-decl.c (xref_defn_tag): Fix parallel nested class problem.
185 Fri Dec 10 12:40:25 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
187         * cp-call.c (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print
188         out the final evaluation of the function, so we can see if ELLIPSIS,
189         USER, and EVIL were set at the end.
191         * cp-call.c (convert_harshness_ansi): When the parm isn't an lvalue,
192         only go for setting TRIVIAL_CODE if we are dealing with types that
193         are compatible.
195 Thu Dec  9 18:27:22 1993  Mike Stump  <mrs@cygnus.com>
197         * cp-decl.c (flag_huge_objects): New flag to allow large objects.
198         * toplev.c (lang_options): Likewise.
199         * cp-decl2.c (flag_huge_objects, lang_f_options): Likewise.
200         * cp-decl.c (delta_type_node): New type for delta entries.
201         * cp-tree.h (delta_type_node): Likewise.
202         * cp-decl.c (init_decl_processing): Setup delta_type_node.
203         * cp-decl.c (init_decl_processing, build_ptrmemfunc_type): Use
204         delta_type_node instead of short_integer_type_node.
205         * cp-class.c (build_vtable_entry): Likewise.
207 Thu Dec  9 16:19:05 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
209         * cp-tree.h (OPERATOR_TYPENAME_P): Define outside of
210         NO_{DOLLAR,DOT} macro checks, so it always gets defined.
211         (VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL.
213 Wed Dec  8 17:38:06 1993  Mike Stump  <mrs@cygnus.com>
215         * cp-decl.c (finish_decl): Make sure things that can go into
216         "common", do go into common, if -fcommon is given.
218 Wed Dec  8 13:01:54 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
220         * cp-call.c (print_harshness) [DEBUG_MATCHING]: New function.
221         (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print out
222         argument matching diagnostics to make instantly clear what the
223         compiler is doing.
225         * cp-call.c (convert_harshness_ansi): If the parm isn't an lvalue,
226         then check to see if the penalty was increased due to
227         signed/unsigned mismatch, and use a TRIVIAL_CODE if it wasn't.
229 Tue Dec  7 18:29:14 1993  Kung Hsu  <kung@cirdan.cygnus.com>
231         * cp-decl.c (xref_tag, pushtag): Fix nested class search/resolution
232         problem.
234 Tue Dec  7 16:09:34 1993  Jason Merrill  <jason@deneb.cygnus.com>
236         * cp-class.c (finish_struct): Before synthesizing methods, if no
237         methods have yet been declared then set nonprivate_method.  Don't
238         set non_private method after synthesizing a method.
240         * cp-lex.c (extract_interface_info): If flag_alt_external_templates
241         is set, tie emitted code to the location of template instantiation,
242         rather than definition.
244         * cp-tree.h: Declare flag_alt_external_templates.
246         * cp-decl2.c (lang_decode_option): Support -falt-external-templates.
248         * toplev.c (lang_options): Likewise.
250 Mon Oct  4 12:50:02 1993  Chip Salzenberg  <chip@fin.uucp>
252         [changes propagated from 930810 snapshot]
253         * cp-decl.c (init_decl_processing): Make long long available for use
254         as SIZE_TYPE and PTRDIFF_TYPE.
255         (finish_decl): Allow file-scope static incomplete array.
256         (grokdeclarator): Don't pass on const and volatile fron function
257         value type to function type.
258         Warn here for volatile fn returning non-void type.
259         * cp-parse.y (attrib): Accept attributes `volatile' with alias
260         `noreturn', and `const'.
261         * cp-typeck.c (default_conversion): Don't lose const and volatile.
262         (build_binary_op_nodefault): Generate pedantic warning for comparison
263         of complete pointer type with incomplete pointer type.
264         (build_c_cast): Be careful that null pointer constant be INTEGER_CST.
266 Tue Dec  7 10:46:48 1993  Jason Merrill  <jason@deneb.cygnus.com>
268         * cp-init.c (expand_vec_init): When creating a temporary for copying
269         arrays, use the type of the source, not the target.
271         * cp-cvt.c (convert): Pass an argument for errtype to
272         convert_to_reference.
274         * cp-error.c (dump_expr, COMPONENT_REF & CALL_EXPR): Deal with
275         methods, -> and `this'.
277 Mon Dec  6 17:12:33 1993  Jason Merrill  <jason@deneb.cygnus.com>
279         * cp-error.c (parm_as_string): New function; returns `this' or arg
280         number.  Corresponds to %P.
281         (dump_expr): Deal with method calls.
283         * cp-cvt.c (convert_to_reference): Stop using warn_for_assignment.
284         * cp-typeck.c (convert_for_assignment): Likewise.
285         (warn_for_assignment): Lose.
287 Mon Dec  6 11:33:35 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
289         * cp-call.c (ideal_candidate_ansi): Delete code that was never
290         doing anything useful.  Instead, sort once, and DO NOT wipe
291         out any codes with EVIL_CODE, since that's what we use as a
292         marker for the end of the list of candidates.
294         * cp-cvt.c (convert_to_aggr): Make sure to always set H_LEN.
296 Mon Dec  6 12:49:17 1993  Jason Merrill  <jason@deneb.cygnus.com>
298         * cp-init.c (get_aggr_from_typedef): New function, like
299         is_aggr_typedef but returns the _TYPE.
301         * cp-call.c, cp-init.c, cp-method.c: Eradicate err_name.
303 Sun Dec  5 18:12:48 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
305         * cp-lex.c (readescape): Pedwarn when a hex escape is out of range.
307 Thu Nov 25 23:50:19 1993  Chip Salzenberg  <chip@fin.uucp>
309         Delay language context change until beginning of next decl.
311         * cp-lex.h (c_header_level): Removed.
312         (pending_lang_change): Declared.
313         * cp-lex.c (c_header_level): Renamed from in_c_header, made static.
314         (pending_lang_change): Defined.
315         (check_newline): Rework code that recognizes line number and
316         filename changes.  Instead of pushing and popping lang context,
317         increment and decrement pending_lang_change.
318         (do_pending_lang_change):  Push and pop lang context according
319         to value of pending_lang_change.
320         * cp-parse.y (extdefs): Use lang_extdef instead of extdef.
321         (extdef): Same as extdef, but call do_pending_lang_change() first.
323 Mon Nov 15 15:39:15 1993  Chip Salzenberg  <chip@fin.uucp>
325         * cp-typeck.c (build_binary_op_nodefault): Warn for ordered
326         compare of ptr with 0 only if pedantic in both cases.
328 Thu Nov 25 13:31:37 1993  Chip Salzenberg  <chip@fin.uucp>
330         Reinstate the below patch, which got lost in the Cygnus merge:
331         Tue Nov 23 13:59:24 1993  Hallvard B Furuseth  (hbf@durin.uio.no)
332         * cp-parse.y (maybe_type_qual): Don't fail to set $$.
334 Wed Nov 17 19:03:30 1993  Chip Salzenberg  <chip@fin.uucp>
336         * cp-parse.y (attrib): Allow "ident(ident)" like the C front end.
338 Fri Oct 22 20:43:37 1993  Paul Eggert  <eggert@twinsun.com>
340         * cp-lex.c (real_yylex): Diagnose floating point constants
341         that are too large.
343 Wed Nov 17 19:10:37 1993  Chip Salzenberg  <chip@fin.uucp>
345         * cp-type2.c (build_functional_cast): ARM page 16: When a class
346         and an object, function or enumerator are declared in the same
347         scope with the same name, the class name is hidden.
349 Wed Nov 17 19:07:18 1993  Chip Salzenberg  <chip@fin.uucp>
351         * cp-call.c (convert_harshness_ansi): Distinguish float, double,
352         and long double from each other when overloading.
353         (compute_conversion_costs_{ansi,old}, build_method_call,
354         build_overlay_call_real, convert_to_aggr): Always set and
355         always use H_LEN member of candidate structure.
357 Mon Oct 11 23:10:53 1993  Chip Salzenberg  <chip@fin.uucp>
359         * cp-decl.c (duplicate_decls): Note redeclarations of library
360         functions, and generate distinct warnings for them.
362 Mon Oct  4 12:26:49 1993  Chip Salzenberg  <chip@fin.uucp>
364         Support format warnings in G++.
366         * cp-tree.h: Protect against multiple inclusion.
367         Declare all public functions in c-common.c (copy from c-tree.h).
368         (STDIO_PROTO): Define.
369         (warn_format): Declare.
370         (record_format_info): Remove declaration.
371         * cp-decl.c (init_decl_processing): Call init_function_format_info.
372         * cp-decl2.c (lang_decode_option): Make "-Wall" include warn_format.
373         * cp-typeck.c (build_function_call_real): Call check_function_format.
374         (record_format_info): Remove -- obsolete stub.
376 Sat Jul 24 12:04:29 1993  Chip Salzenberg  <chip@fin.uucp>
378         * cp-decl.c (duplicate_decls): Don't warn for non-extern var decl
379         following an extern one (for -Wredundant-decls).
380         * cp-parse.y (primary): In statement expression case, if compstmt
381         returns something other than a BLOCK, return it unchanged.
383 Thu Dec  2 20:44:58 1993  Chip Salzenberg  <chip@fin.uucp>
385         * cp-decl.c (warn_extern_redeclared_static): New function made
386         from code extracted from pushdecl.
387         (duplicate_decls, pushdecl): Call new function.
388         (lookup_name_current_level): Allow for IDENTIFIER_GLOBAL_VALUE
389         to be a TREE_LIST when function is declared in 'extern "C" {}'.
391 Fri Dec  3 16:01:10 1993  Jason Merrill  <jason@deneb.cygnus.com>
393         * cp-class.c (duplicate_tag_error): Use cp_error.
394         (finish_base_struct): Check for ambiguity with direct base, and don't
395         generate op= or copy ctor if it exists.
397 Fri Dec  3 15:32:34 1993  Kung Hsu  <kung@cirdan.cygnus.com>
399         * cp-init.c (expand_member_init): When initializer name is null,
400         don't try to build it now because emit_base_init will handle it.
402 Fri Dec  3 12:28:59 1993  Jason Merrill  <jason@deneb.cygnus.com>
404         * cp-lex.c (init_lex): Initialize input_filename to "<internal>" for
405         code such as ExceptionHandler::operator=.
407 Fri Dec  3 10:32:08 1993  Jason Merrill  <jason@deneb.cygnus.com>
409         * cp-decl.c (grokdeclarator): Don't try to print out dname when
410         complaining about arrays of references if decl_context==TYPENAME,
411         since it will be null.
413         * cp-decl2.c: Default to flag_ansi_overloading.
415 Thu Dec  2 18:05:56 1993  Kung Hsu  <kung@cirdan.cygnus.com>
417         * cp-call.c (build_method_call): Use binfo from instance if it's
418         different from binfo (basetype_path) passed from above.
420 Wed Nov 17 19:14:29 1993  Chip Salzenberg  <chip@fin.uucp>
422         cp-error.c (dump_expr): Use unsigned chars to output a
423         TREE_REAL_CST in hex.
425 Thu Dec  2 11:05:48 1993  Jason Merrill  <jason@deneb.cygnus.com>
427         * cp-class.c (finish_struct): Fix typo in setting
428         cant_synth_asn_ref.
430         * cp-tree.h (TYPE_NESTED_NAME): New macro, does
431         DECL_NESTED_TYPENAME (TYPE_NAME (NODE)).
433         * cp-lex.c (default_copy_constructor_body): Change
434         DECL_NAME (TYPE_NAME (btype)) to TYPE_NESTED_NAME (btype).
435         (default_assign_ref_body): Likewise.
436         (default_copy_constructor_body): Call operator= explicitly for
437         base classes that have no constructor.
439 Thu Dec  2 10:47:15 1993  Michael Tiemann  <tiemann@blues.cygnus.com>
441         * cp-call.c (build_method_call): If the instance variable is
442         converted to error_mark_node when we're trying to convert it to the
443         base type of a method we're looking up, return error_mark_node.
445 Thu Dec  2 10:41:16 1993  Torbjorn Granlund  <tege@cygnus.com>
447         * cp-typeck.c (build_binary_op_nodefault): In *_DIV_EXPR *_MOD_EXPR
448         cases, tests for unsigned operands by peeking inside a NOP_EXPR.
450 Wed Dec  1 13:33:34 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
452         * cp-call.c (compute_conversion_costs_ansi): Use the size of struct
453         harshness_code, not the size of short, for clearing out the
454         ansi_harshness.
456         * cp-call.c (print_candidates): New function.
457         (build_method_call): When we had some candidates, but didn't get a
458         usable match, don't report that we got an error with the first
459         candidate.  Instead, say there were no matches, and list the
460         candidates with print_candidates.  In the second pass, make sure we
461         clear out ever_seen, so we can accurately count the number of
462         functions that qualified.
464 Wed Dec  1 09:53:59 1993  Torbjorn Granlund  <tege@cygnus.com>
466         * cp-typeck.c (build_binary_op_nodefault): Shorten for *_MOD_EXPR
467         only if op1 is known to be != -1.
468         (build_binary_op_nodefault): Handle *_DIV_EXPR likewise.
470 Tue Nov 30 14:07:26 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
472         * cp-method.c (hack_identifier): If the field itself is private, and
473         not from a private base class, say so.
475 Mon Nov 29 03:00:56 1993  Jason Merrill  <jason@deneb.cygnus.com>
477         * cp-decl.c (grokdeclarator): Always warn on initialization of
478         const member.
480 Wed Nov 24 00:49:35 1993  Jason Merrill  <jason@deneb.cygnus.com>
482         * cp-class.c (finish_struct): Set TYPE_GETS_CONST_* properly.
483         (finish_base_struct): Set cant_synth_asn_ref properly.
485         * cp-lex.c (cons_up_default_function): Add section for operator=.
486         (default_assign_ref_body): New function, mostly cribbed from
487         default_copy_constructor_body.
489         * cp-class.c (base_info): Add members cant_synth_copy_ctor,
490         cant_synth_asn_ref, no_const_asn_ref.
491         (finish_base_struct): Update no_const_asn_ref, note that you should
492         update cant_synth_*, propagate TYPE_GETS_ASSIGN_REF.
493         (finish_struct): Add decls for cant_synth_*, no_const_asn_ref, and
494         initialize them properly.  Set no_const_asn_ref properly.  Set
495         cant_synth_* in some of the situations where they should be set.
496         Propagate TYPE_GETS_ASSIGN_REF.  Use cant_synth_copy_ctor.  Add call
497         to cons_up_default_function for operator=.
499 Tue Nov 23 20:24:58 1993  Mike Stump  <mrs@cygnus.com>
501         * cp-cvt.c (convert_force): Add code to perform casting of pointer
502         to member function types.
503         * cp-typeck.c (build_ptrmemfunc): Add FORCE parameter to indicate
504         when the conversion should be done, regardless.
505         * cp-tree.h (build_ptrmemfunc): Likewise.
506         * cp-type2.c (digest_init): Likewise.
507         * cp-typeck.c (convert_for_assignment): Likewise.
509 Tue Nov 23 18:06:58 1993  Jason Merrill  <jason@deneb.cygnus.com>
511         * cp-error.c (dump_expr): Do the right thing for variables of
512         reference type.
514         * cp-decl.c (grok_op_properties): Set TYPE_HAS_ASSIGN_REF
515         and its kin properly.
516         (xref_tag): Propagate TYPE_GETS_ASSIGN_REF.
518 Tue Nov 23 12:26:13 1993  Mike Stump  <mrs@cygnus.com>
520         * cp-method.c (build_opfncall): Don't count pointer to member
521         functions as aggregates here, as we don't want to look up methods in
522         them.  The compiler would core dump if we did, as they don't have
523         normal names.
524         * cp-typeck.c (build_indirect_ref): Improve wording on error
525         message.
527 Mon Nov 22 14:22:23 1993  Jason Merrill  <jason@deneb.cygnus.com>
529         * cp-decl.c (grok_op_properties): Allow operator?: with pedwarn
530         (since it's supported in other compiler bits).
532         * cp-method.c (report_type_mismatch): Use cp_error; ignore err_name
533         argument.
535         * cp-error.c (dump_function_decl): Don't print return type for
536         constructors and destructors.
538         * cp-cvt.c (cp_convert_to_pointer): Import code from
539         convert_to_pointer so we can return error_mark_node in the case of an
540         error, and to allow more meaningful error messages.
541         (build_type_conversion): Don't go through void* when trying
542         to convert to a pointer type.
544         * cp-decl.c (grokfndecl): Move call to grok_op_properties back
545         after grokclassfn so that it's dealing with the right decl.
546         (grok_op_properties): Don't assert !methodp for op new and op delete.
548         * cp-init.c (build_delete): Don't use TYPE_BUILT_IN (there are now
549         no uses of it in the compiler).
551         * cp-call.c (build_scoped_method_call): Fix for destructors of simple
552         types.
553         (build_method_call): Likewise.
555 Fri Nov 19 12:59:38 1993  Jason Merrill  <jason@deneb.cygnus.com>
557         * cp-tree.c (count_functions): Abstraction function.
559         * cp-call.c (build_overload_call_real): Deal with new overloading
560         properly, remove dead code.
562         * gcc.c (default_compilers): Generate and use .ii files in the
563         intermediate stage of compiling C++ source.
565 Fri Nov 19 11:26:09 1993  Jim Wilson  <wilson@sphagnum.cygnus.com>
567         * cp-expr.c (cplus_expand_expr): Make call_target a valid memory
568         address before using it, so it can be later safely compared.
570 Fri Nov 12 15:30:27 1993  Jason Merrill  <jason@deneb.cygnus.com>
572         * cp-pt.c (tsubst): Deal with new overloading.
574         * cp-typeck.c (fntype_p): Is the arg function type?
575         (comp_target_parms): pedwarn on conversion from (anything) to (...).
576         (build_x_function_call): Deal with new overloading.
578         * cp-tree.c (decl_list_length): Deal with new overloading.
579         (decl_value_member): Like value_member, but for DECL_CHAINs.
581         * cp-decl.c (duplicate_decls): Deal with new overloading.
582         (start_decl): Likewise.
584         * cp-class.c (instantiate_type): Deal with new overloading.
586         * cp-call.c (convert_harshness_ansi): Deal with new overloading.
587         (convert_harshness_old): Deal with new overloading.
588         (build_overload_call_real): Likewise.
590 Mon Nov  8 13:50:49 1993  Jason Merrill  <jason@deneb.cygnus.com>
592         * cp-tree.c (get_unique_fn): New function; returns FUNCTION_DECL
593         if unambiguous, NULL_TREE otherwise.
594         (get_first_fn): Returns the first appropriate FUNCTION_DECL.
595         (is_overloaded_fn): Returns whether or not the passed tree is
596         a function or list of functions.
598         * cp-init.c (init_init_processing): Use `get_first_fn' to find
599         the FUNCTION_DEFN for new and delete.
601         * cp-decl.c (push_overloaded_decl): Use new overloading strategy, cut
602         code size in half (I spit on special cases).
604 Tue Sep  7 20:03:33 1993  Jason Merrill  <jason@deneb.cygnus.com>
606         * cp-decl.c: Allow references and template type parameters as well
609 Copyright (C) 1993 Free Software Foundation, Inc.
611 Copying and distribution of this file, with or without modification,
612 are permitted in any medium without royalty provided the copyright
613 notice and this notice are preserved.