]>
Commit | Line | Data |
---|---|---|
898600d5 MM |
1 | 1998-08-19 Mark Mitchell <mark@markmitchell.com> |
2 | ||
3 | * cp-tree.h (ansi_null_node): New variable. | |
4 | * decl.c (ansi_null_node): New variable. | |
5 | (init_decl_processing): Initialize its type. | |
6 | * lex.c (init_parse): Initialize its value. Use ansi_null_node | |
7 | for null_node in non-ANSI mode. | |
8 | * typeck.c (build_binary_op_nodefault): Use ansi_null_node in | |
9 | place of null_node to avoid spurious errors. | |
10 | ||
648f19f6 MM |
11 | 1998-08-17 Mark Mitchell <mark@markmitchell.com> |
12 | ||
13 | * cp-tree.h (enter_scope_of): New function. | |
14 | * parse.y (complex_direct_notype_declarator): Use it. | |
15 | * semantics.c (enter_scope_of): New function. | |
16 | ||
287662c5 JM |
17 | 1998-08-17 Jason Merrill <jason@yorick.cygnus.com> |
18 | ||
482b883f JM |
19 | * decl.c (grokparms): No, here. |
20 | ||
2d914461 JM |
21 | * decl.c (grokdeclarator): Catch parm with pointer to array of |
22 | unknown bound here... | |
23 | * method.c (process_overload_item): ...not here. | |
24 | ||
8cd4c175 JM |
25 | * gxxint.texi: Remove obsolete documentation of overloading code. |
26 | ||
27 | * decl.c (finish_enum): Also set TYPE_SIZE_UNIT. | |
509087ae | 28 | * class.c (finish_struct_bits): Likewise. |
8cd4c175 JM |
29 | |
30 | * tree.c (lvalue_type): Fix for arrays. | |
31 | * typeck.c (build_unary_op): Use lvalue_type. | |
32 | * call.c (add_function_candidate): Likewise. | |
33 | * cvt.c (convert_to_reference): Likewise. | |
34 | ||
35 | * decl2.c (lang_decode_option): Ignore -traditional. | |
36 | ||
287662c5 JM |
37 | * init.c (build_offset_ref): Don't mess with error_mark_node. |
38 | * lex.c (do_scoped_id): Use cp_error. | |
39 | ||
40 | * rtti.c (get_tinfo_fn): Don't mess with the context for now. | |
41 | ||
0d2a8b1b BK |
42 | 1998-08-17 Benjamin Kosnik <bkoz@loony.cygnus.com> |
43 | ||
44 | * decl.c (grokdeclarator): Allow anonymous types to be cv-qualified. | |
45 | ||
69789cfc JL |
46 | Mon Aug 17 10:40:18 1998 Jeffrey A Law (law@cygnus.com) |
47 | ||
48 | * cp-tree.h (set_identifier_local_value): Provide prototype. | |
49 | ||
50 | * decl2.c (do_namespace_alias): Remove unused variables `binding' | |
51 | and `old'. | |
52 | ||
b2fdd68c NC |
53 | Fri Aug 14 16:42:27 1998 Nick Clifton <nickc@cygnus.com> |
54 | ||
55 | * Makefile.in: Rename BBISON to BISON so that it can be properly | |
56 | inherited from the parent makefile. | |
57 | ||
2ce3c6c6 JM |
58 | 1998-08-13 Jason Merrill <jason@yorick.cygnus.com> |
59 | ||
60 | * lang-options.h: Add -finit-priority. | |
61 | * decl2.c: Likewise. Check flag_init_priority instead of | |
62 | USE_INIT_PRIORITY. | |
63 | ||
64 | * decl2.c (setup_initp): New fn. | |
65 | (start_objects, finish_objects, do_ctors): Handle init_priority. | |
66 | (do_dtors, finish_file): Likewise. | |
67 | ||
db04386f JM |
68 | 1998-08-13 Jason Merrill <jason@yorick.cygnus.com> |
69 | ||
70 | * pt.c (tsubst_copy): Hush warning. | |
71 | ||
72 | * rtti.c (get_tinfo_fn): Also set DECL_IGNORED_P. | |
73 | ||
05008fb9 MM |
74 | 1998-08-12 Mark Mitchell <mark@markmitchell.com> |
75 | ||
49e04385 MM |
76 | * pt.c (print_template_context): Don't abort when instantiating a |
77 | synthesized method. | |
78 | ||
05008fb9 MM |
79 | * decl.c (grokdeclarator): Issue errors on namespace qualified |
80 | declarators in parameter lists or in class scope. | |
81 | ||
8ec2ac34 MM |
82 | 1998-08-09 Mark Mitchell <mark@markmitchell.com> |
83 | ||
84 | * pt.c (check_explicit_specialization): Don't abort on bogus | |
85 | explicit instantiations. | |
86 | ||
52363387 MM |
87 | 1998-08-07 Mark Mitchell <mark@markmitchell.com> |
88 | ||
ae58fa02 MM |
89 | * typeck.c (require_complete_type): Use complete_type_or_else. |
90 | (complete_type_or_else): Always return NULL_TREE on failure, as | |
91 | documented. | |
92 | ||
93 | * pt.c (tsubst_aggr_type): Prototype. | |
94 | (tsubst_decl): New function, split out from tsubst. Set | |
95 | input_filename and lineno as appropriate. | |
96 | (pop_tinst_level): Restore the file and line number saved in | |
97 | push_tinst_level. | |
98 | (instantiate_class_template): Set input_filename and lineno as | |
99 | appropriate. | |
100 | (tsubst): Move _DECL processing to tsubst_decl. Make sure the | |
101 | context for a TYPENAME_TYPE is complete. | |
102 | ||
103 | * decl2.c (grokbitfield): Issue errors on bitfields declared with | |
104 | function type. | |
105 | (do_dtors): As in do_ctors, pretend to be a member of the same | |
106 | class as a static data member while generating a call to its | |
107 | destructor. | |
108 | ||
109 | * cvt.c (cp_convert_to_pointer): Handle NULL pointer | |
52363387 MM |
110 | conversions, even in complex virtual base class hierarchies. |
111 | ||
ed44da02 MM |
112 | 1998-08-06 Mark Mitchell <mark@markmitchell.com> |
113 | ||
114 | * cp-tree.h (ENUM_TEMPLATE_INFO): New macro. | |
115 | (TYPE_TEMPLATE_INFO): Likewise. | |
116 | (SET_TYPE_TEMPLATE_INFO): Likewise. | |
117 | (ENUM_TI_TEMPLATE): Likewise. | |
118 | (ENUM_TI_ARGS): Likewise. | |
119 | (lookup_nested_type_by_name): Remove. | |
120 | * decl.c (maybe_process_template_type_declaration): Handle enums. | |
121 | (start_enum): Don't check for primary-template enum declarations | |
122 | here. | |
123 | (finish_enum): Clean up, document. Make sure template enum | |
124 | constants get the correct type. | |
125 | (build_enumerator): Copy initializers for template enumerations, | |
126 | too. | |
127 | (grok_enum_decls): Document. | |
128 | * lex.c (do_identifier): Document use of LOOKUP_EXPR a bit | |
129 | better. Build LOOKUP_EXPRs for local variables, even if they are | |
130 | TREE_PERMANENT. | |
131 | * pt.c (tsubst_enum): Remove field_chain parameter. | |
132 | (template_class_depth): Include the depth of surrounding function | |
133 | contexts. | |
134 | (push_template_decl): Check for primary-template enum declarations | |
135 | here. Deal with enumeration templates. | |
136 | (lookup_template_class): Likewise. | |
137 | (for_each_template_parm): Likewise. | |
138 | (instantiate_class_template): Don't call tsubst_enum directly, | |
139 | call tsubst instead, to instantiate enums. Deal with all | |
140 | field_chain issues here, not in tsubst_enum. | |
141 | (lookup_nested_type_by_name): Remove. | |
142 | (tsubst_aggr_type): Revise handling of enumeration types. | |
143 | (tsubst): Likewise. | |
144 | (tsubst_copy): Likewise. | |
145 | (tsubst_expr): Call tsubst, not tsubst_enum for TAG_DEFNs. | |
146 | ||
e4a84209 MM |
147 | 1998-08-04 Mark Mitchell <mark@markmitchell.com> |
148 | ||
149 | * decl.c (pushtag): Don't mangle the name of a TYPE_DECL if it | |
150 | uses template parameters. | |
151 | * method.c (build_template_parm_names): Use the full set of | |
152 | template arguments for tsubst'ing. | |
153 | (build_overload_identifier): Pass the full set of template | |
154 | arguments to build_template_parm_names, not just the | |
155 | innermost_args. | |
156 | * pt.c (TMPL_ARGS_DEPTH): Define using | |
157 | TMPL_ARGS_HAVE_MULTIPLE_LEVELS, for clarity. | |
158 | (NUM_TMPL_ARGS): New macro. | |
159 | (add_outermost_template_args): Deal with the case where the outer | |
160 | args will be completely discarded. | |
161 | (coerce_template_parms): Use the full set of template arguments | |
162 | for tsubst'ing. Simplify. Add some asserts. Improve | |
163 | error messages. | |
164 | (lookup_template_class): Pass the full set of template arguments | |
165 | to coerce_template_parms. | |
166 | (tsubst): Add assertion. | |
167 | (do_type_instantiation): Don't instantiate member template | |
168 | classes. | |
169 | ||
170 | * init.c (build_offset_ref): Deal with a TEMPLATE_ID_EXPR whose | |
171 | name is a LOOKUP_EXPR, rather than an IDENTIFIER_NODE. | |
172 | ||
c1def683 JM |
173 | 1998-08-03 Jason Merrill <jason@yorick.cygnus.com> |
174 | ||
175 | * method.c (set_mangled_name_for_decl): Change return type to void. | |
176 | ||
177 | * decl.c (lookup_name_real): A namespace-level decl takes priority | |
178 | over implicit typename. Avoid doing the same lookup twice. | |
179 | ||
180 | * search.c (dependent_base_p): New fn. | |
181 | (dfs_pushdecls, dfs_compress_decls): Use it. | |
182 | ||
183 | * typeck.c (get_member_function_from_ptrfunc): Don't try to handle | |
184 | virtual functions if the type doesn't have any. | |
185 | ||
93b7fd0a MM |
186 | 1998-08-03 Mark Mitchell <mark@markmitchell.com> |
187 | ||
188 | * decl2.c (grokfield): Don't mangle the name of a TYPE_DECL if it | |
189 | uses template parameters. | |
190 | ||
672476cb MM |
191 | 1998-08-02 Mark Mitchell <mark@markmitchell.com> |
192 | ||
193 | * cp-tree.def (LOOKUP_EXPR): Document. Remove second argument. | |
194 | * cp-tree.h (DECL_TI_TEMPLATE): Improve documentation. | |
195 | * lex.c (do_identifier): Don't use a second argument, or a type, | |
196 | when building LOOKUP_EXPRs. | |
197 | (do_identifier): Likewise. | |
198 | (do_scoped_id): Likewise. | |
199 | * method.c (hack_identifier): Improve error message. | |
200 | * pt.c (lookup_template_function): Don't needlessly call | |
201 | copy_to_permanent or build_min. | |
202 | (tsubst_copy): Remove #if 0'd code. Tsubst into LOOKUP_EXPRs if | |
203 | necessary. | |
204 | (do_decl_instantiation): Improve error message. | |
205 | * tree.c (mapcar, case LOOKUP_EXPR): Don't be sorry; make a copy. | |
206 | (build_min): Copy the type to the permanent obstack, too. | |
207 | ||
c787dd82 JM |
208 | 1998-08-01 Jason Merrill <jason@yorick.cygnus.com> |
209 | ||
210 | * init.c (init_init_processing): Remove BI* handling. | |
211 | (build_builtin_call): Remove. | |
212 | (build_builtin_delete_call): New fn. | |
213 | (build_delete): Use it. | |
214 | ||
39c01e4c MM |
215 | 1998-07-31 Mark Mitchell <mark@markmitchell.com> |
216 | ||
217 | * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): New macro. | |
218 | (maybe_check_template_type): New function. | |
219 | * decl.c (maybe_process_template_type_declaration): New function, | |
220 | split out from pushtag Call maybe_check_template_type. | |
221 | (pushtag): Use it. Use PROCESSING_REAL_TEMPLATE_DECL_P. | |
222 | (xref_tag): Use PROCESSING_REAL_TEMPLATE_DECL_P. | |
223 | * friend.c (do_friend): Use PROCESSING_REAL_TEMPLATE_DECL_P. | |
224 | * pt.c (template_class_depth_real): Generalization of ... | |
225 | (template_class_depth): Use it. | |
226 | (register_specialization): Use duplicate_decls for duplicate | |
227 | declarations of specializations. | |
228 | (maybe_check_template_type): New function. | |
229 | (push_template_decl_real): Fix comment. | |
230 | (convert_nontype_argument): Likewise. | |
231 | (lookup_template_class): Likewise. Avoid an infinite loop on | |
232 | erroneous code. | |
233 | (tsubst_friend_function): Fix comment. | |
234 | (tsubst, case FUNCTION_DECL): Deal with a DECL_TI_TEMPLATE that is | |
235 | an IDENTIFIER_NODE. | |
236 | * semantics.c (begin_function_definition): Use | |
237 | reset_specialization to note that template headers don't apply | |
238 | directly to declarations after the opening curly for a function. | |
239 | ||
53fdbb3b JM |
240 | 1998-07-29 Jason Merrill <jason@yorick.cygnus.com> |
241 | ||
19f1bd34 JM |
242 | * decl.c (push_overloaded_decl): Use current_namespace instead of |
243 | DECL_CONTEXT (decl) to determine where we go. | |
244 | ||
53fdbb3b JM |
245 | * decl.c (lookup_name_real): Fix typo. |
246 | ||
8fb08bdd MM |
247 | 1998-07-28 Mark Mitchell <mark@markmitchell.com> |
248 | ||
249 | * friend.c (is_friend): Be lenient with member functions to deal | |
250 | with nested friends. | |
251 | ||
282a221c JM |
252 | 1998-07-28 Jason Merrill <jason@yorick.cygnus.com> |
253 | ||
254 | * class.c (finish_struct_1): Convert integer_zero_node to | |
255 | ssizetype before passing it to set_rtti_entry. | |
256 | * typeck2.c (initializer_constant_valid_p): Allow conversion of 0 | |
257 | of any size to a pointer. | |
258 | ||
36a117a5 MM |
259 | 1998-07-27 Mark Mitchell <mark@markmitchell.com> |
260 | ||
261 | * cp-tree.h (TI_USES_TEMPLATE_PARMS): Remove. | |
262 | (build_template_decl_overload): Remove. | |
263 | (set_mangled_name_for_decl): New function. | |
264 | (innermost_args): Remove is_spec parameter. | |
265 | (most_specialized, most_specialized_class): Remove declarations. | |
266 | (lookup_template_class): Add entering_scope parameter. | |
267 | (maybe_process_partial_specialization): New function. | |
268 | (finish_template_decl): Likewise. | |
269 | (finish_template_type): Likewise. | |
270 | * class.c (finish_struct): Clean up processing of member template | |
271 | specializations. | |
272 | * decl.c (pushtag): Fix formatting. | |
273 | (lookup_tag): Improve handling of pseudo-global levels. | |
274 | (make_typename_type): Adjust call to lookup_template_class. | |
275 | (shadow_tag): Use maybe_process_partial_specialization. | |
276 | (xref_tag): Improve handling of member friends. | |
277 | (start_function): Call push_nested_class before | |
278 | push_template_decl. Don't call push_template_decl for | |
279 | specializations. | |
280 | * decl2.c (grok_x_components): Don't call xref_tag for | |
281 | template instantiations. Handle UNION_TYPEs like RECORD_TYPEs. | |
282 | (grokclassfn): Use set_mangled_name_for_decl. | |
283 | (arg_assoc_class): Adjust call to innermost_args. | |
284 | (mark_used): Don't call instantiate_decl for a TEMPLATE_DECL. | |
285 | * error.c (dump_function_name): Improve printing of template | |
286 | function names. | |
287 | * friend.c (is_friend): Don't compare types of decls to determine | |
288 | friendship, unless flag_guiding_decls. | |
289 | (make_friend_class): Partial specializations cannot be friends. | |
290 | (do_friend): Use set_mangled_name_for_decl. Call | |
291 | push_template_decl_real instead of push_template_decl. | |
292 | * method.c (build_decl_overload_real): Remove prototype. Give it | |
293 | external linkage. | |
294 | (build_overload_identififer): Adjust call to innermost_args. | |
295 | (build_template_decl_overload): Remove. | |
296 | (set_mangled_name_for_decl): New function. | |
297 | * parse.y (.finish_template_type): New non-terminal. | |
298 | (template_def): Use finish_template_decl. Use template_extdef | |
299 | instead of extdef. | |
300 | (template_extdef, template_datadef): New non-terminals, containing | |
301 | only those rules for things which can be templates. | |
302 | (datadef): Tidy. | |
303 | (template_type, self_template_type): Use .finish_template_type. | |
304 | (named_class_head): Use maybe_process_partial_specialization. | |
305 | * pt.c (mangle_class_name_for_template): Remove context parameter. | |
306 | (get_class_bindings): Remove outer_args parameter. | |
307 | (complete_template_args): Remove. | |
308 | (add_outermost_template_args): New function. | |
309 | (register_specialization): Return the specialization. | |
310 | (unregister_specialization): New function. | |
311 | (tsubst_template_parms): Likewise. | |
312 | (most_specialized, most_specialized_class): Prototype here as | |
313 | static. | |
314 | (original_template): Rename to most_general_template. | |
315 | (tsubst_template_parms): New function. | |
316 | (set_mangled_name_for_template_decl): Likewise. | |
317 | (TMPL_ARGS_DEPTH): New macro. | |
318 | (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Adjust. | |
319 | (TMPL_ARGS_LEVEL): New macro. | |
320 | (SET_TMPL_ARGS_LEVEL): Likewise. | |
321 | (TMPL_ARG): Likewise. | |
322 | (SET_TMPL_ARG): Likewise. | |
323 | (TMPL_ARGS_DEPTH): Likewise. | |
324 | (finish_member_template_decl): Use finish_template_decl. | |
325 | (maybe_process_partial_specialization): New function, split out | |
326 | from tsubst. | |
327 | (inline_needs_template_parms): Use TMPL_PARMS_DEPTH. | |
328 | (maybe_begin_member_template_processing): Use new macros. | |
329 | (is_member_template): Likewise. | |
330 | (is_member_template_class): Likewise. | |
331 | (add_to_template_args): Likewise. Deal with multiple levels of | |
332 | args. | |
333 | (maybe_process_partial_specialization): New function. | |
334 | (retrieve_specialization): Add consistency check. | |
335 | (determine_specialization): Return full argument list. | |
336 | (check_explicit_specialization): Tweak friend handling. Use full | |
337 | argument lists. Simplify. | |
338 | (current_template_args): Use new macros. | |
339 | (push_template_decl_real): Change ill-named mainargs to specargs. | |
340 | Check that a partial specialization actually specializes at least | |
341 | one parameter. Improve friend handling. Modify for full | |
342 | template arguments. | |
343 | (classtype_mangled_name): Don't mangle the names of | |
344 | specializations. | |
345 | (lookup_template_class): Add entering_scope parameter. Use it to | |
346 | avoid finding a template type when an instantiation is required. | |
347 | Simplify. Use full template arguments. | |
348 | (tsubst_friend_function): Use unregister_specialization. Use new | |
349 | macros. Use full template arguments. | |
350 | (tsubst_friend_class): Substitute, using tsubst_template_parms, | |
351 | into the template parameters before passing them to | |
352 | redeclare_class_template. | |
353 | (instantiate_class_template): Simplify. Use full template | |
354 | arguments. Adjust calls to get_class_bindings. Use | |
355 | SET_IDENTIFIER_TYPE_VALUE where needed. Improve friend handling. | |
356 | (innermost_args): Use new macros. | |
357 | (tsubst_aggr_type): New function, split out from tsubst. | |
358 | (tsubst): Use tsubst_aggr_type, tsubst_template_parms, new calling | |
359 | conventions for lookup_tmeplate_class. Refine handling of partial | |
360 | instantiations. Remove calls to complete_template_args. | |
361 | Simplify. Add consistency checks. Use set_mangled_name_for_decl | |
362 | and set_mangled_name_for_template_decl. | |
363 | (tsubst_copy): Use tsubst_aggr_type. | |
364 | (instantiate_template): Use full template arguments. | |
365 | (more_specialized): Improve formatting. | |
366 | (more_specialized_class): Adjust calls to get_class_bindings. | |
367 | (get_bindings_real): Don't call complete_template_args. | |
368 | (most_specialized): Don't overwrite input; create a new list. | |
369 | (most_specialized_class): Use most_general_template. | |
370 | (regenerate_decl_from_template): Use unregister_specialization. | |
371 | Use full template arguments. | |
372 | (instantiate_decl): Use full template arguments. | |
373 | (set_mangled_name_for_template_decl): New function. | |
374 | * semantics.c (begin_class_definition): Use | |
375 | maybe_process_partial_specialization. | |
376 | (finish_member_class_template): New function. | |
377 | (finish_template_decl): Likewise. | |
378 | (finish_template_type): Likewise. | |
379 | (typeck.c): Don't crash after issuing a compiler_error. | |
380 | * Makefile.in (CONFLICTS): Adjust; we removed a s/r conflict. | |
381 | ||
92ac31f1 JM |
382 | 1998-07-27 Jason Merrill <jason@yorick.cygnus.com> |
383 | ||
3551c177 JM |
384 | * typeck2.c (build_functional_cast): Handle default-initialization. |
385 | ||
66c2127e JM |
386 | * call.c (build_over_call): Pass 1 to popclass. |
387 | ||
92ac31f1 JM |
388 | * parse.y (direct_notype_declarator): Add precedence declaration |
389 | to notype_unqualified_id case. | |
3551c177 | 390 | * Makefile.in (EXPECT): Adjust. |
92ac31f1 JM |
391 | |
392 | * tree.c (ovl_member): Fix for single function in OVL. | |
393 | ||
ea6c1142 DB |
394 | 1998-07-27 Dave Brolley <brolley@cygnus.com> |
395 | ||
396 | * c-lex.c (yylex): Fix boundary conditions in character literal and | |
397 | string literal loops. | |
398 | ||
c6160f8f JM |
399 | 1998-07-24 Jason Merrill <jason@yorick.cygnus.com> |
400 | ||
b8b1a3c1 JM |
401 | * decl.c (lookup_name_real): OK, do return the from_obj value |
402 | unless got_object depends on template parms. | |
403 | ||
bc22fa98 JM |
404 | * parse.y (nested_name_specifier_1): Pull out the TYPE_MAIN_VARIANT. |
405 | ||
d1fec180 JM |
406 | * pt.c (coerce_template_parms): Also complain about local enums. |
407 | ||
c6160f8f JM |
408 | * cp-tree.h: Add prototype for set_identifier_local_value. |
409 | * decl.c (set_identifier_local_value_with_scope): Make static, | |
410 | prototype. | |
411 | * search.c (covariant_return_p): Likewise. | |
412 | * except.c (build_terminate_handler, alloc_eh_object): Likewise. | |
413 | ||
414 | * call.c (build_method_call): Only pull out the type of a destructor | |
415 | if it's a template type parm. | |
416 | * decl.c (lookup_name_real): Never return the from_obj value. | |
417 | ||
25eb19ff JM |
418 | 1998-07-23 Jason Merrill <jason@yorick.cygnus.com> |
419 | ||
420 | * except.c (process_start_catch_block_old): Call start_decl_1 for | |
421 | catch parm. | |
422 | * decl.c (start_decl_1): Avoid duplicate error. | |
423 | ||
424 | * init.c (expand_default_init): Only perform the initialization if | |
425 | it will do something. | |
426 | ||
427 | 1998-07-23 H.J. Lu (hjl@gnu.org) | |
428 | ||
429 | * parse.y (base_class): Check for invalid base class. | |
430 | ||
67f7c391 JM |
431 | 1998-07-23 Jason Merrill <jason@yorick.cygnus.com> |
432 | ||
7e776093 JM |
433 | * decl2.c (import_export_template): Fold in... |
434 | (import_export_class): ...to here. Handle dllimport/export. | |
435 | ||
67f7c391 JM |
436 | * class.c (build_vtable): Pass at_eof to import_export_vtable. |
437 | (prepare_fresh_vtable): Likewise. | |
438 | * decl2.c (import_export_class): Split out... | |
439 | (finish_prevtable_vardecl): From here. | |
440 | * class.c (finish_struct_1): Call import_export_class if at_eof. | |
441 | ||
442 | * decl.c (start_function): #if 0 mysterious code I wrote and have | |
443 | forgotten why. | |
444 | * rtti.c (get_tinfo_fn): If this is for a class type, set | |
445 | DECL_CONTEXT. | |
446 | ||
268ae1b0 JM |
447 | 1998-07-22 Jason Merrill <jason@yorick.cygnus.com> |
448 | ||
449 | * inc/exception: Change terminate and unexpected to (). | |
450 | ||
451 | * parse.y (named_class_head_sans_basetype_defn): A | |
452 | named_class_head_sans_basetype followed by '{' or ':' is a defn. | |
453 | ||
53929c47 JM |
454 | 1998-07-21 Jason Merrill <jason@yorick.cygnus.com> |
455 | ||
456 | * tree.c (canonical_type_variant): New fn to handle arrays. | |
457 | * cp-tree.h (CANONICAL_TYPE_VARIANT): Remove. | |
458 | * pt.c (unify, default case): Also fold arg. Fix array bounds case. | |
459 | * method.c (process_overload_item): Use build_overload_value for | |
460 | arrays. | |
461 | ||
0d3ba739 DB |
462 | 1998-07-20 Dave Brolley <brolley@cygnus.com> |
463 | ||
464 | * lex.c (mbchar.h): #include it. | |
465 | (GET_ENVIRONMENT): New macro. | |
466 | (init_parse): Set character set based on LANG environment variable. | |
467 | (real_yylex): Handle multibyte characters in character literals. | |
468 | (real_yylex): Handle multibyte characters in string literals. | |
469 | ||
e13a4123 JM |
470 | 1998-07-19 Jason Merrill <jason@yorick.cygnus.com> |
471 | ||
472 | * lex.c (do_identifier): Look for class value even if we don't | |
473 | have a global value. Do implicit declaration if parsing is 2. | |
474 | * semantics.c (finish_call_expr): Pass 2 if we're doing Koenig | |
475 | lookup. | |
476 | ||
8014a339 MM |
477 | 1998-07-19 Mark Mitchell <mark@markmitchell.com> |
478 | ||
077e7015 MM |
479 | * decl.c (pushtag): Revert previous change. |
480 | * pt.c (lookup_template_class): Don't put out debugging | |
481 | information for types that use template parameters. | |
482 | ||
d92e4d8c MM |
483 | * decl.c (pushtag): Don't put out debugging information for |
484 | compiler-generated typedefs. | |
485 | ||
3df095e2 MM |
486 | * error.c (dump_type_real): Don't crash when presented with |
487 | intQI_type_node or the like. | |
488 | ||
8014a339 MM |
489 | * semantics.c (finish_translation_unit): Fix spelling error in |
490 | comment. | |
491 | ||
03d82991 JM |
492 | 1998-07-17 Jason Merrill <jason@yorick.cygnus.com> |
493 | ||
0c64a9ca JM |
494 | * decl.c (lookup_name_real): Pull out single function here. |
495 | (select_decl): Not here. | |
496 | (unqualified_namespace_lookup): Use CP_DECL_CONTEXT. | |
497 | ||
6b945830 JM |
498 | * decl.c (qualify_lookup): Tweak again. |
499 | ||
c3baf4b5 JM |
500 | * pt.c (lookup_template_class): Don't mess with the context of the |
501 | instantiation. | |
502 | * decl2.c (current_decl_namespace): Remove special handling for | |
503 | templates. | |
504 | ||
c5a6fc45 JM |
505 | * pt.c (tsubst, case FUNCTION_DECL): Fix getting complete args for |
506 | a member template specialization. | |
507 | ||
508 | * tree.c (ovl_member): Use decls_match to compare functions. | |
509 | * decl.c (decls_match): Check the context of a function. | |
510 | ||
03d82991 JM |
511 | * parse.y (primary): Use notype_unqualified_id instead of IDENTIFIER |
512 | in Koenig lookup support rules. | |
513 | * semantics.c (finish_call_expr): Handle the new cases. | |
514 | ||
515 | * typeck.c (build_x_function_call): Handle overloaded methods. | |
516 | ||
517 | * decl.c (grokvardecl): Don't call build_static_name for extern "C". | |
518 | ||
c68c56f7 MM |
519 | 1998-07-16 Mark Mitchell <mark@markmitchell.com> |
520 | ||
521 | * semantics.c (finish_object_call_expr): Revert previous change. | |
522 | * call.c (build_new_method_call): Likewise. Instead, convert | |
523 | TYPE_DECLs to IDENTIFIERs here, in the presence of templates. | |
524 | ||
52c11ef6 JM |
525 | 1998-07-16 Jason Merrill <jason@yorick.cygnus.com> |
526 | ||
9ed182dc JM |
527 | * decl.c (qualify_lookup): Handle templates. |
528 | ||
529 | * decl2.c (do_using_directive): Don't pass ancestor. | |
530 | * decl.c (push_using_directive): Calculate ancestor. | |
531 | ||
532 | * decl2.c (do_nonmember_using_decl): Allow for type shadowing. | |
533 | * decl.c (pushdecl): Move type shadowing handling from here... | |
534 | (duplicate_decls): ...to here. | |
535 | * decl.c (set_identifier_local_value_with_scope): New fn. | |
536 | (pushdecl): Use it. | |
537 | (set_identifier_local_value, lookup_type_current_level): New fns. | |
538 | * decl2.c (do_local_using_decl): Handle types and binding level | |
539 | stuff properly. | |
540 | ||
1c35f5b6 JM |
541 | * init.c (build_offset_ref): Don't call mark_used on an OVERLOAD. |
542 | * decl.c (select_decl): Extract a lone function from an OVERLOAD. | |
543 | (lookup_namespace_name): Likewise. | |
544 | * typeck.c (build_unary_op): Not here anymore. | |
545 | ||
546 | * decl2.c (do_class_using_decl): Make sure we get an identifier. | |
547 | * class.c (handle_using_decl): Ignore TYPE_DECLs. | |
548 | ||
52c11ef6 JM |
549 | * decl.c (qualify_lookup): New fn. |
550 | (lookup_name_real): Use it. | |
551 | ||
552 | 1998-07-16 Martin v. Loewis <loewis@informatik.hu-berlin.de> | |
553 | ||
554 | * decl2.c (add_using_namespace): When directly using a namespace | |
555 | that was indirect before, promote it. | |
556 | ||
557 | * cp-tree.h (LOOKUP_PREFER_TYPES, LOOKUP_PREFER_NAMESPACES, | |
558 | LOOKUP_PREFER_BOTH, LOOKUP_NAMESPACES_ONLY, LOOKUP_TYPES_ONLY, | |
559 | LOOKUP_QUALIFIERS_ONLY, LOOKUP_TEMPLATES_EXPECTED): New macros. | |
560 | * decl.c (select_decl): Replace two flag parameters by one. | |
561 | (unqualified_namespace_lookup): Likewise, pass flag. | |
562 | (lookup_flags): New function. | |
563 | (lookup_name_real): Compute flags, pass them. | |
564 | (lookup_namespace_name): Call with zero-flag. | |
565 | * decl2.c (ambiguous_decl): Add flag parameter, complain only | |
566 | according to flags. | |
567 | (lookup_using_namespace, qualified_lookup_using_namespace): | |
568 | Add flag parameter, pass them through. | |
569 | * lex.c (do_scoped_id): Call with zero-flag. | |
570 | ||
a942e89c JM |
571 | 1998-07-16 Jason Merrill <jason@yorick.cygnus.com> |
572 | ||
573 | * typeck.c (convert_for_assignment): Use comptypes. | |
574 | ||
52889bc8 MM |
575 | 1998-07-16 Mark Mitchell <mark@markmitchell.com> |
576 | ||
577 | * semantics.c (finish_object_call_expr): Move test for the | |
578 | function called being a TYPE_DECL to ... | |
579 | * call.c (build_new_method_call): Here. | |
580 | ||
00dc6358 JM |
581 | 1998-07-15 Jason Merrill <jason@yorick.cygnus.com> |
582 | ||
583 | * decl2.c (arg_assoc_class): Also look at template arguments, if any. | |
584 | (arg_assoc): Handle error_mark_node and multiple levels of TREE_LIST. | |
585 | ||
586 | * lex.c (looking_for_typename): Don't initialize. | |
587 | ||
588 | * decl2.c (ambiguous_decl): Clarify error message. | |
589 | ||
590 | * decl.c (push_using_directive): Iterate over namespaces used | |
591 | indirectly. | |
592 | ||
85c6cbaf ML |
593 |