ChangeLog-1993 23 KB

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