]>
Commit | Line | Data |
---|---|---|
7f6bf6c7 | 1 | 2005-12-30 Gabriel Dos Reis <gdr@integrable-solutions.net> |
2 | ||
3 | * cxx-pretty-print.c (pp_cxx_constant): New. Print | |
4 | string-literal in parens if input program says so. | |
5 | (pp_cxx_primary_expression): Hand off constant printing to | |
6 | pp_cxx_constant. | |
7 | (pp_cxx_pretty_printer_init): Set pp->c_base.constant. | |
8 | (pp_cxx_expression): Use pp_cxx_constant for literals. | |
9 | * error.c (dump_expr): Use pp_constant for literals. | |
10 | ||
11 | 2005-12-29 Nathan Sidwell <nathan@codesourcery.com> | |
12 | ||
13 | * method.c (make_thunk): Don't set comdat_linkage here. | |
14 | (use_thunk): Make thunk one only here, if thunk target is | |
15 | DECL_ONE_ONLY. | |
16 | ||
17 | 2005-12-26 Mark Mitchell <mark@codesourcery.com> | |
18 | ||
19 | PR c++/25439 | |
20 | * decl.c (grokdeclarator): Remove dead code. | |
21 | * ptree.c (cxx_print_xnode): Handle BASELINK. | |
22 | * parser.c (make_id_declarator): Add sfk parameter. | |
23 | (cp_parser_direct_declarator): Do not pass TYPE_DECLs to | |
24 | make_id_declarator. | |
25 | (cp_parser_declarator_id): Simplify BASELINKs here. | |
26 | (cp_parser_member_declaration): Adjust calls to | |
27 | make_id_declarator. | |
28 | ||
29 | 2005-12-26 Mark Mitchell <mark@codesourcery.com> | |
30 | ||
31 | PR c++/23171, c++/23172, c++/25417. | |
32 | * typeck.c (build_unary_op): Create temporary variables for | |
33 | compound literals whose addresses are taken. | |
34 | * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P. | |
35 | * decl.c (reshape_init_vector): Likewise. | |
36 | (reshape_init): Give it external linkage. | |
37 | (check_initializer): Use COMPOUND_LITERAL_P. | |
38 | (initialize_artificial_var): Allow the initializer to be a | |
39 | CONSTRUCTOR. | |
40 | * call.c (make_temporary_var_for_ref_to_temp): Use | |
41 | create_temporary_var. | |
42 | * cp-tree.h (COMPOUND_LITERAL_P): New macro. | |
43 | (rehape_init): Declare. | |
44 | * typeck2.c (digest_init): Use COMPOUND_LITERAL_P. | |
45 | * semantics.c (finish_compound_literal): Use reshape_init. | |
46 | ||
47 | 2005-12-23 Mark Mitchell <mark@codesourcery.com> | |
48 | ||
49 | PR c++/24671 | |
50 | * pt.c (instantiate_template): Handle SFINAE. | |
51 | ||
52 | 2005-12-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
53 | ||
54 | * decl.c (grokdeclarator): Improve diagnostic for friend | |
55 | declarations of class members. | |
56 | ||
57 | 2005-12-22 Mark Mitchell <mark@codesourcery.com> | |
58 | ||
59 | PR c++/25369 | |
60 | * tree.c (really_overloaded_fn): Tweak comment. | |
61 | * pt.c (tsubst_call_declarator_parms): Remove. | |
62 | (tsubst_copy): Call mark_used on the member referenced by an | |
63 | OFFSET_REF. | |
64 | * semantics.c (finish_qualified_id_expr): Simplify. | |
65 | * decl2.c (mark_used): Accept BASELINKs. | |
66 | ||
67 | PR c++/25364 | |
68 | * typeck.c (build_unary_op): Pass DECLs not names to | |
69 | build_offset_refs. | |
70 | * init.c (build_offset_ref): Do not do name lookup. Do not call | |
71 | mark_used. | |
72 | * call.c (build_call): Simplify and tidy. | |
73 | * semantics.c (finish_qualified_id_expr): Call mark_used. | |
74 | ||
75 | 2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
76 | ||
77 | PR c++/23333 | |
78 | * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to | |
79 | identify a single '0'. | |
80 | ||
81 | 2005-12-20 Mark Mitchell <mark@codesourcery.com> | |
82 | ||
83 | PR c++/21228 | |
84 | * decl.c (use_eh_spec_block): New function. | |
85 | (store_parm_decls): Use it. | |
86 | (finish_function): Likewise. | |
87 | ||
88 | 2005-12-19 Mark Mitchell <mark@codesourcery.com> | |
89 | ||
90 | PR c++/24278 | |
91 | * init.c (expand_member_init): Print messages about baseclasses | |
92 | using %T rather than %D. | |
93 | ||
94 | PR c++/24915 | |
95 | * class.c (add_method): Do not treat templates as identical unless | |
96 | their return types are the same. | |
97 | ||
98 | 2005-12-12 Mark Mitchell <mark@codesourcery.com> | |
99 | ||
100 | PR c++/25300 | |
101 | * tree.c (build_qualified_name): Return error_mark_node for | |
102 | erroneous input. | |
103 | ||
104 | 2005-12-10 Mark Mitchell <mark@codesourcery.com> | |
105 | ||
106 | PR c++/25337 | |
107 | * pt.c (tsubst_copy_and_build): Permit dependent types for the | |
108 | object in a class member access expression. | |
109 | ||
110 | 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com> | |
111 | ||
112 | PR java/9861 | |
113 | * mangle.c (write_bare_function_type): Mangle return type for | |
114 | methods of Java classes | |
115 | ||
116 | 2005-12-08 Th�dore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> | |
117 | ||
118 | * call.c (build_conditional_expr): Print types in error messages. | |
119 | ||
120 | 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
121 | ||
122 | * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort. | |
123 | ||
124 | 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
125 | ||
126 | * cp-gimplify.c (gimplify_cp_loop): Use fold_build3. | |
127 | ||
128 | 2005-12-07 Rafael �ila de Esp�dola <rafael.espindola@gmail.com> | |
129 | ||
130 | * Make-lang.in (c++.all.build, c++.install-normal): Remove. | |
131 | ||
132 | 2005-12-07 Rafael �ila de Esp�dola <rafael.espindola@gmail.com> | |
133 | ||
134 | * Make-lang.in: Remove all dependencies on s-gtype. | |
135 | ||
136 | 2005-12-06 Aldy Hernandez <aldyh@redhat.com> | |
137 | ||
138 | PR C++/24138 | |
139 | * decl.c (reshape_init_array_1): Handle max_index of -1. | |
140 | ||
141 | 2005-12-06 Roger Sayle <roger@eyesopen.com> | |
142 | ||
143 | * typeck.c (build_binary_op): Issue warning if either operand of a | |
144 | comparison operator is a string literal, except for testing equality | |
145 | or inequality against NULL. | |
146 | ||
147 | 2005-12-06 Roger Sayle <roger@eyesopen.com> | |
148 | ||
149 | PR c++/25263 | |
150 | * decl.c (compute_array_index_type): Check that itype is an | |
151 | INTEGER_CST node before testing/clearing TREE_OVERFLOW. | |
152 | ||
153 | 2005-12-05 Daniel Berlin <dberlin@dberlin.org> | |
154 | ||
155 | * ptree.c (cxx_print_decl): Update to check for decl_common | |
156 | structure. | |
157 | ||
158 | 2005-12-02 Mark Mitchell <mark@codesourcery.com> | |
159 | ||
160 | PR c++/24173 | |
161 | * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after | |
162 | clobbering newdecl. | |
163 | ||
164 | 2005-12-02 Richard Guenther <rguenther@suse.de> | |
165 | ||
166 | * semantics.c (simplify_aggr_init_expr): Use buildN instead | |
167 | of build. | |
168 | ||
169 | 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net> | |
170 | ||
171 | * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of | |
172 | ggc_realloc. | |
173 | (cp_parser_template_argument_list): Use XRESIZEVEC instead of | |
174 | xrealloc. | |
175 | * class.c (pushclass): Likewise. | |
176 | ||
177 | 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net> | |
178 | ||
179 | * decl2.c (get_priority_info): Use XNEW, not xmalloc. | |
180 | * decl.c (push_switch): Likewise. | |
181 | * lex.c (handle_pragma_implementation): Likewise. | |
182 | * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW, | |
183 | not ggc_alloc. | |
184 | (cxx_initialize_diagnostics): Use XNEW, not xmalloc. | |
185 | * class.c (init_class_processing): Use XNEWVEC, not xmalloc. | |
186 | * g++spec.c (lang_specific_driver): Likewise. | |
187 | * mangle.c (save_partially_mangled_name): Likewise. | |
188 | * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc. | |
189 | (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc. | |
190 | (cp_parser_sizeof_operand): Likewise. | |
191 | * repo.c (open_repo_file, open_repo_file): Likewise. | |
192 | ||
193 | 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net> | |
194 | ||
195 | * parser.c (cp_parser_make_typename_type): Call make_typename_type | |
196 | with tf_none instead of magic value 0. | |
197 | (cp_parser_explicit_instantiation): Call do_type_instantiation | |
198 | with tf_error instead of magic value 1. | |
199 | (cp_parser_elaborated_type_specifier): Call make_typename_type | |
200 | with tf_error instead of magic value 1. | |
201 | (cp_parser_class_name): Likewise. | |
202 | (cp_parser_lookup_name): Likewise. | |
203 | ||
204 | 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net> | |
205 | ||
206 | * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF, | |
207 | not RID_MAX. | |
208 | ||
209 | 2005-11-30 Jason Merrill <jason@redhat.com> | |
210 | ||
211 | PR c++/21123 | |
212 | * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference | |
213 | parms in a thunk. | |
214 | ||
215 | 2005-11-30 Ben Elliston <bje@au.ibm.com> | |
216 | ||
217 | * typeck.c (build_x_unary_op): Correct spelling in error message. | |
218 | ||
219 | 2005-11-28 Nathan Sidwell <nathan@codesourcery.com> | |
220 | ||
221 | PR c++/21166 | |
222 | * class.c (check_field_decls): Only set DECL_PACKED on a field | |
223 | when its natural alignment is > BITS_PER_UNIT. | |
224 | ||
225 | 2005-11-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
226 | ||
227 | PR c++/24979 | |
228 | * cp-tree.h (DECL_MAIN_P): Remove duplicate definition. | |
229 | ||
230 | 2005-11-26 Richard Henderson <rth@redhat.com> | |
231 | ||
232 | * lex.c: Update for pragma_lex rename. | |
233 | * parser.c: Likewise. | |
234 | ||
235 | 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
236 | ||
237 | PR c++/9278 | |
238 | * decl.c (grokparms): Do not allow typedef-names in a '(void)' | |
239 | parmlist. | |
240 | ||
241 | 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
242 | ||
243 | * typeck2.c (process_init_constructor_union): Remove check for | |
244 | unnamed union members. | |
245 | ||
246 | 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
247 | ||
248 | * name-lookup.c (lookup_name_real): Merge two if's. | |
249 | ||
250 | 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
251 | ||
252 | * pt.c (instantiate_class_template): Clean-up. | |
253 | ||
254 | 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
255 | ||
256 | * pt.c (template_class_depth_real): Remove. Move functionality to ... | |
257 | (template_class_depth): ... here, replacing count_specializations | |
258 | with 0. Adjust comment. | |
259 | ||
260 | 2005-11-24 Richard Guenther <rguenther@suse.de> | |
261 | Dirk Mueller <dmueller@suse.de> | |
262 | ||
263 | PR c++/14024 | |
264 | * typeck.c (build_reinterpret_cast_1): Use | |
265 | strict_aliasing_warning. | |
266 | ||
267 | 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net> | |
268 | ||
269 | PR c++/24235 | |
270 | * pt.c (check_instantiated_args): Reword diagnostic message about | |
271 | template argument involving local types. | |
272 | ||
273 | 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net> | |
274 | ||
275 | PR c++/21667 | |
276 | * typeck.c (build_array_ref): Avoid code duplicate. Use common | |
277 | C/C++ diagnostic function warn_array_subscript_with_type_char. | |
278 | ||
279 | 2005-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net> | |
280 | ||
281 | PR c++/22238 | |
282 | * error.c (resolve_virtual_fun_from_obj_type_ref): New. | |
283 | (dump_expr): Use it in <case CALL_EXPR>. | |
284 | ||
285 | 2005-11-21 Richard Henderson <rth@redhat.com> | |
286 | ||
287 | * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch. | |
288 | ||
289 | * name-lookup.c (lookup_name): Remove prefer_type argument. | |
290 | (lookup_name_prefer_type): New. | |
291 | * decl.c (lookup_and_check_tag): Use them. | |
292 | * pt.c (tsubst_friend_class): Likewise. | |
293 | (lookup_template_class): Likewise. | |
294 | (tsubst_copy_and_build): Likewise. | |
295 | * name-lookup.h (lookup_name_prefer_type): New. | |
296 | (lookup_name): Remove declaration. | |
297 | ||
298 | 2005-11-18 Mark Mitchell <mark@codesourcery.com> | |
299 | ||
300 | PR c++/8355 | |
301 | * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling | |
302 | set_decl_namespace. | |
303 | * name-lookup.c (set_decl_namespace): | |
304 | ||
305 | 2005-11-18 Mike Stump <mrs@apple.com> | |
306 | ||
307 | * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add. | |
308 | * name-lookup.c (lookup_name_two): Remove. | |
309 | (lookup_name_one): Add. | |
310 | * name-lookup.h (lookup_name_two): Remove. | |
311 | (lookup_name_one): Add. | |
312 | ||
313 | 2005-11-15 Jason Merrill <jason@redhat.com> | |
314 | ||
315 | PR c++/24580 | |
316 | * method.c (locate_copy): Also use skip_artificial_parms here. | |
317 | (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking | |
318 | for RECORD_TYPE. | |
319 | (locate_ctor): Abort if we fail to find a default constructor. | |
320 | ||
321 | 2005-11-15 Mike Stump <mrs@apple.com> | |
322 | ||
323 | * name-lookup.c (lookup_name_two): Add. | |
324 | * name-lookup.h: Likewise. | |
325 | ||
326 | 2005-11-15 Mark Mitchell <mark@codesourcery.com> | |
327 | ||
328 | PR c++/24667 | |
329 | * typeck.c (check_for_casting_away_constness): Use the diag_fn. | |
330 | (build_const_cast_1): Call it, for C-style casts. | |
331 | ||
332 | 2005-11-14 Mark Mitchell <mark@codesourcery.com> | |
333 | ||
334 | PR c++/24687 | |
335 | * pt.c (check_explicit_specialization): Don't check for C linkage. | |
336 | (push_template_decl_real): Likewise. | |
337 | * parser.c (cp_parser_explicit_specialization): Check here. | |
338 | (cp_parser_template_declaration_after_export): And here. | |
339 | ||
340 | * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword | |
341 | field. | |
342 | ||
343 | 2005-11-14 Jason Merrill <jason@redhat.com> | |
344 | ||
345 | PR c++/24580 | |
346 | * method.c (locate_ctor): Skip all artificial parms, not just | |
347 | 'this'. | |
348 | ||
349 | 2005-11-14 Mark Mitchell <mark@codesourcery.com> | |
350 | ||
351 | * parser.c (eof_token): Add initializer for ambiguous_p. | |
352 | ||
353 | 2005-11-13 Mark Mitchell <mark@codesourcery.com> | |
354 | ||
355 | PR c++/24817 | |
356 | * decl.c (check_redeclaration_exception_specification): New | |
357 | function. | |
358 | (duplicate_decls): Use it. | |
359 | * error.c (fndecl_to_string): Print the template parameter list. | |
360 | ||
361 | PR c++/20293 | |
362 | * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes | |
363 | for namespaces. | |
364 | (pp_cxx_original_namespace_definition): Likewise. | |
365 | * name-lookup.c (ambiguous_decl): Don't issue error messages; | |
366 | instead return lists of ambiguous candidates. | |
367 | (select_decl): Handle ambiguous namespace lookups. | |
368 | * parser.c (cp_token): Add ambiguous_p. | |
369 | (cp_lexer_get_preprocessor_token): Set it. | |
370 | (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages | |
371 | when a qualified name uses an invalid scope. | |
372 | (cp_parser_primary_expression): Print ambiguous candidates. | |
373 | (cp_parser_type_parameter): Adjust comment to reflect new | |
374 | parameter name for cp_parser_lookup_name. | |
375 | (cp_parser_template_argument): Likewise. | |
376 | (cp_parser_elaborated_type_specifier): Likewise. | |
377 | (cp_parser_namespace_name): Likewise. | |
378 | (cp_parser_class_name): Print ambiguous candidates. | |
379 | (cp_parser_lookup_name): Rename ambiguous_p parameter to | |
380 | ambiguous_decls. Use it to return a list of ambiguous candiates | |
381 | when a lookup is ambiguous. | |
382 | (cp_parser_lookup_name_simple): Adjust comment to reflect new | |
383 | parameter name for cp_parser_lookup_name. | |
384 | ||
385 | 2005-11-12 Jakub Jelinek <jakub@redhat.com> | |
386 | ||
387 | PR c++/24780 | |
388 | * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING | |
389 | and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants | |
390 | of array type. | |
391 | ||
392 | PR c++/24761 | |
393 | * pt.c (tsubst_copy_asm_operands): New function. | |
394 | (tsubst_expr) <case ASM_EXPR>: Use it. | |
395 | ||
396 | 2005-11-08 Jakub Jelinek <jakub@redhat.com> | |
397 | ||
398 | PR c++/19450 | |
399 | * decl.c (redeclaration_error_message): Issue diagnostics about | |
400 | olddecl and newdecl disagreement on __thread property. | |
401 | (grokdeclarator): Set DECL_TLS_MODEL on class static variables. | |
402 | ||
403 | 2005-11-08 Jason Merrill <jason@redhat.com> | |
404 | ||
405 | PR c++/21123 | |
406 | * method.c (use_thunk): Use build_cplus_new instead of | |
407 | force_target_expr. | |
408 | ||
409 | 2005-11-06 Jason Merrill <jason@redhat.com> | |
410 | James A. Morrison <phython@gcc.gnu.org> | |
411 | ||
412 | PR c++/17256 | |
413 | * decl2.c (cp_finish_file): Fix conditions for undefined warning. | |
414 | Set TREE_NO_WARNING instead of TREE_PUBLIC. | |
415 | * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid | |
416 | a warning on a function we didn't instantiate because of excessive | |
417 | recursion. | |
418 | ||
419 | 2005-11-06 Mark Mitchell <mark@codesourcery.com> | |
420 | ||
421 | * class.c (record_subobject_offsets): Don't record offsets past | |
422 | biggest empty class for non-empty base classes. | |
423 | (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when | |
424 | keeping track of the size of emptyclasses. | |
425 | ||
426 | PR c++/21308 | |
427 | * class.c (sizeof_biggest_empty_class): New variable. | |
428 | (record_subobject_offsets): Don't record offsets past biggest | |
429 | empty class for data members. Replace vbases_p parameter with | |
430 | is_data_member parameter. | |
431 | (build_base_field): Adjust call. | |
432 | (layout_class_type): Likewise. Maintain | |
433 | sizeof_biggest_empty_class. | |
434 | ||
435 | 2005-11-05 Kazu Hirata <kazu@codesourcery.com> | |
436 | ||
437 | * decl2.c, init.c, typeck.c: Fix comment typos. | |
438 | ||
439 | 2005-11-04 Richard Guenther <rguenther@suse.de> | |
440 | ||
441 | PR c++/22487 | |
442 | * init.c (build_vec_init): Build comparison of matching | |
443 | types. | |
444 | ||
445 | 2005-11-03 Josh Conner <jconner@apple.com> | |
446 | ||
447 | PR c++/19989 | |
448 | pt.c (tsubst): Accept zero-length array if tf_error is set | |
449 | in complain flags. Change error message for negative- | |
450 | length array. | |
451 | ||
452 | 2005-11-04 Joseph S. Myers <joseph@codesourcery.com> | |
453 | ||
454 | * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list* | |
455 | parameter. | |
456 | ||
457 | 2005-11-03 Joseph S. Myers <joseph@codesourcery.com> | |
458 | ||
459 | PR c++/17964 | |
460 | * error.c (cp_cpp_error): New function. | |
461 | * cp-tree.h (cp_cpp_error): Declare. | |
462 | * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic | |
463 | and error callback after lexing. | |
464 | ||
465 | 2005-11-03 Mark Mitchell <mark@codesourcery.com> | |
466 | ||
467 | PR c++/21627 | |
468 | * pt.c (register_specialization): Update inline flags on clones.y | |
469 | ||
470 | 2005-11-03 Andrew Pinski <pinskia@physics.uc.edu> | |
471 | ||
472 | PR c++/24582 | |
473 | * decl.c (declare_local_label): Return 0 for variables | |
474 | with error_mark_node as their types. | |
475 | ||
476 | 2005-11-02 Mark Mitchell <mark@codesourcery.com> | |
477 | ||
478 | PR c++/22434 | |
479 | * call.c (build_conditional_expr): Do bad conversions, if there's | |
480 | no other choice. | |
481 | ||
482 | PR c++/24560 | |
483 | * parser.c (cp_parser_postfix_dot_deref_expression): Improve error | |
484 | message for use of overloaded functions on LHS of "." operator. | |
485 | ||
486 | PR c++/19253 | |
487 | * parser.c (cp_parser_postfix_expression): Use | |
488 | cp_parser_elaborated_type_specifier to handle typename-types in | |
489 | functional casts. | |
490 | (cp_parser_enclosed_argument_list): Skip ahead to the end of the | |
491 | template argument list if the closing ">" is not found. | |
492 | ||
493 | PR c++/24569 | |
494 | * pt.c (instantiate_decl): Use cp_finish_decl, not | |
495 | finish_static_data_member_decl. | |
496 | ||
497 | 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu> | |
498 | ||
499 | * decl.c (grokfndecl): Remove the setting | |
500 | of the return type of the function type | |
501 | of main after erroring about must returning | |
502 | int. | |
503 | ||
504 | 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu> | |
505 | ||
506 | PR C++/23229 | |
507 | * decl.c (grokfndecl): Create a new function type | |
508 | after erroring out about main not returning int. | |
509 | ||
510 | 2005-10-28 Josh Conner <jconner@apple.com> | |
511 | ||
512 | PR c++/22153 | |
513 | * parser.c (cp_parser_member_declaration): Detect and handle | |
514 | a template specialization. | |
515 | ||
516 | 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu> | |
517 | ||
518 | PR C++/23426 | |
519 | * decl.c (start_decl): Check that the decl is an | |
520 | error_mark_node before getting the type. | |
521 | Remove the check for the decl's type being an | |
522 | error_mark_node. | |
523 | ||
524 | 2005-10-21 Mark Mitchell <mark@codesourcery.com> | |
525 | ||
526 | PR c++/24260 | |
527 | * parser.c (cp_parser_init_declarator): Pass attributes to | |
528 | grokfield. | |
529 | ||
530 | 2005-10-20 Mark Mitchell <mark@codesourcery.com> | |
531 | ||
532 | PR c++/22618 | |
533 | * search.c (accessible_p): Check access in the outermost set of | |
534 | template parameters. | |
535 | ||
536 | 2005-10-20 Richard Guenther <rguenther@suse.de> | |
537 | ||
538 | * decl.c (grokdeclarator): Fix ambiguous pedwarn message. | |
539 | ||
540 | 2005-10-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
541 | ||
542 | PR c++/22293 | |
543 | * decl.c (grokdeclarator): Reject unqualified destructors in | |
544 | friend declarations. | |
545 | ||
546 | 2005-10-18 Mark Mitchell <mark@codesourcery.com> | |
547 | ||
548 | PR c++/23293 | |
549 | * pt.c (convert_template_argument): Use canonical type variants in | |
550 | template specializations. | |
551 | ||
552 | 2005-10-18 Nathan Sidwell <nathan@codesourcery.com> | |
553 | ||
554 | PR c++/21383 | |
555 | * name-lookup.c (arg_assoc): Template args can be null in a | |
556 | template-id-expr. | |
557 | ||
558 | PR c++/22604 | |
559 | * class.c (update_vtable_entry_for_fn): Don't process invalid | |
560 | covariant overriders. | |
561 | ||
562 | PR c++/23118 | |
563 | * cp-tree.h (add_method): Add return value. | |
564 | * class.c (add_method): Return success indicator. | |
565 | * semantics.c (finish_member_declaration): Don't add an invalid | |
566 | method to the method list. | |
567 | ||
568 | 2005-10-17 Mark Mitchell <mark@codesourcery.com> | |
569 | ||
570 | PR c++/21908 | |
571 | * call.c (build_new_method_call): Do not show VTT parameters to | |
572 | the user. | |
573 | ||
574 | 2005-10-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
575 | ||
576 | PR c++/23440 | |
577 | * parser.c (cp_parser_statement): If the parser reached CPP_EOF, | |
578 | only complain about missing statement. | |
579 | ||
580 | 2005-10-17 Nathan Sidwell <nathan@codesourcery.com> | |
581 | ||
582 | PR c++/24386 | |
583 | * cp-tree.h (BASELINK_QUALIFIED_P): New. | |
584 | * pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it. | |
585 | * typeck.c (finish_class_member_access_expr): Set it. | |
586 | ||
587 | PR c++/21353 | |
588 | * decl.c (check_default_argument): Don't check | |
589 | processing_template_decl or uses_template_parms here. | |
590 | (grokparms): Only call check_default_argument when not processing | |
591 | a template decl. | |
592 | * parser.c (cp_parser_late_parsing_default_arg): Call | |
593 | check_default_argument when not processing a template decl. | |
594 | ||
595 | 2005-10-16 Mark Mitchell <mark@codesourcery.com> | |
596 | ||
597 | PR c++/24389 | |
598 | * decl2.c (mark_used): Use uses_template_parms instead of | |
599 | dependent_type_p. | |
600 | * init.c (constant_value_1): Handle uninstantiated templates | |
601 | specially. | |
602 | * pt.c (instantiate_decl): Add sanity check. | |
603 | ||
604 | 2005-10-16 Mark Mitchell <mark@codesourcery.com> | |
605 | ||
606 | PR c++/22173 | |
607 | * typeck.c (check_template_keyword): Fix thinko. | |
608 | ||
609 | 2005-10-16 Andrew Pinski <pinskia@physics.uc.edu> | |
610 | ||
611 | PR c++/23959 | |
612 | * decl.c (pop_switch): Only call c_do_switch_warnings | |
613 | when not processing templates. | |
614 | ||
615 | 2005-10-16 Mark Mitchell <mark@codesourcery.com> | |
616 | ||
617 | PR c++/22173 | |
618 | * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro. | |
619 | (check_template_keyword): New function. | |
620 | (finish_id_expression): Change prototoype. | |
621 | (finish_qualified_id_expr): Change prototype. | |
622 | (build_qualified_name): New function. | |
623 | (finish_class_member_access_expr): Change prototype. | |
624 | * init.c (build_offset_ref): Use build_qualified_name. | |
625 | * mangle.c (write_expression): Likewise. | |
626 | * parser.c (cp_parser_primary_expression): Remove qualifying_class | |
627 | parameter. Add address_p and template_arg_p. Use | |
628 | build_qualified_name. | |
629 | (cp_parser_id_expression): Default *template_p to | |
630 | template_keyword_p. Check for invalid uses of the template | |
631 | keyword. | |
632 | (cp_parser_postfix_expression): Eliminate special handling for | |
633 | qualified names. Adjust call to cp_parser_primary_expression. | |
634 | (cp_parser_postfix_dot_deref_expression): Adjust call to | |
635 | cp_parser_id_expression and finish_class_member_access_expr. | |
636 | (cp_parser_template_argument_list): Add comment. | |
637 | (cp_parser_template_argument): Adjust use of | |
638 | cp_parser_primary_expression. Remove call to | |
639 | finish_qualified_id_expr. | |
640 | (cp_parser_lookup_name): Use build_qualified_name. | |
641 | * pt.c (tsubst): Use build_qualified_name. | |
642 | (tsubst_qualified_id): Likewise. Adjust call to | |
643 | finish_qualified_id_expr. | |
644 | (tsubst_copy): Use build_qualified_name. | |
645 | (tsubst_copy_and_build): Adjusts call to finish_id_expression and | |
646 | finish_class_member_access_expr. | |
647 | * semantics.c (finish_non_static_data_member): Use | |
648 | build_qualified_name. | |
649 | (finish_qualified_id_expr): Add template_p and template_arg_p | |
650 | parameters. | |
651 | (finish_id_expression): Remove qualifiying_class parameter. Add | |
652 | template_p, done, address_p, and template_arg_p. Use | |
653 | build_qualified_name. Adjust calls to | |
654 | finish_class_member_acess_expr. | |
655 | * tree.c (build_qualified_name): New function. | |
656 | * typeck.c (check_template_keyword): New function. | |
657 | (finish_class_member_access_expr): Add template_p argument. Check | |
658 | for invalid uses of the template keyword. | |
659 | ||
660 | 2005-10-15 Mark Mitchell <mark@codesourcery.com> | |
661 | ||
662 | PR c++/21347 | |
663 | * class.c (maybe_warn_about_overly_private_class): Lazy | |
664 | constructors are public. | |
665 | ||
666 | 2005-10-14 Mark Mitchell <mark@codesourcery.com> | |
667 | ||
668 | PR c++/19565 | |
669 | * call.c (convert_like_real): Rely on convert_and_check to issue | |
670 | warnings about overflow and conversion to unsigned. | |
671 | * decl.c (finish_enum): Use the location of the enumerators, not | |
672 | the closing brace of the enumeration, when reporting warnings | |
673 | about conversions. | |
674 | (build_enumerator): Use error_mark_node for erroneous values. | |
675 | * typeck2.c (digest_init): Remove reference to "signature pointer" | |
676 | from comment. | |
677 | ||
678 | 2005-10-14 Nathan Sidwell <nathan@codesourcery.com> | |
679 | ||
680 | PR c++/17796 | |
681 | * optimize.c (update_cloned_parm): Add FIRST parameter. Use it. | |
682 | (maybe_clone_body): Track the first clone. | |
683 | ||
684 | 2005-10-13 Nathan Sidwell <nathan@codesourcery.com> | |
685 | ||
686 | PR c++/23984 | |
687 | * class.c (build_base_path): The vtable is always the first thing | |
688 | in the vtt. | |
689 | ||
690 | 2005-10-13 Mark Mitchell <mark@codesourcery.com> | |
691 | ||
692 | PR c++/20721 | |
693 | * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro. | |
694 | * decl.c (duplicate_decls): Merge it into new declarations. | |
695 | (decl_jump_unsafe): Use it, rather than DECL_INITIAL. | |
696 | (cp_finish_decl): Set it, when appropriate. | |
697 | ||
698 | PR c++/22180 | |
699 | * call.c (build_new_method_call): Correct pretty-printing of | |
700 | destructor names. | |
701 | * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an | |
702 | identifier. | |
703 | ||
704 | PR c++/23694 | |
705 | * decl.c (start_method): Return error_mark_node for errors. | |
706 | ||
707 | PR c++/23307 | |
708 | * pt.c (push_template_decl_real): Complain about attempts to | |
709 | declare template variables. | |
710 | ||
711 | PR c++/22352 | |
712 | * pt.c (tsubst_template_parms): Set processing_template_decl while | |
713 | processing the parameters. | |
714 | (tsubst_decl): Set processing_template_decl when substituting into | |
715 | a TEMPLATE_DECL. | |
716 | ||
717 | PR c++/22405 | |
718 | * pt.c (most_specialized_instantiation): Robustify. | |
719 | ||
720 | PR c++/22464 | |
721 | * semantics.c (finish_id_expression): Issue errors about uses of | |
722 | local variables in containing functions even in templates. | |
723 | ||
724 | 2005-10-12 Danny Smith <dannysmith@users.sourceforge.net> | |
725 | ||
726 | PR target/21801 | |
727 | PR target/23589 | |
728 | * class.c (finish_struct_1): Call | |
729 | targetm.cxx.adjust_class_at_definition. | |
730 | ||
731 | ||
732 | 2005-10-12 Nathan Sidwell <nathan@codesourcery.com> | |
733 | ||
734 | PR c++/21592 | |
735 | * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF | |
736 | with already looked up member functions. Assert we're not | |
737 | returning a NON_DEPENDENT_EXPR with unknown type. | |
738 | * typeck.c (finish_class_member_access_expr): We can get | |
739 | non-template-id-expr baselinks. If the lookup finds a baselink, | |
740 | remember it even inside templates. | |
741 | ||
742 | PR c++/23797 | |
743 | * parser.c (cp_parser_functional_cast): Cope when TYPE is not a | |
744 | TYPE_DECL. Use dependent_type_p to check type. | |
745 | * pt.c (uses_template_parms_p): Use dependent_type_p for a | |
746 | TYPE_DECL. | |
747 | (type_dependent_expression_p): Assert we've not been given a | |
748 | TYPE_DECL. | |
749 | ||
750 | PR c++/21117 | |
751 | * decl.c (check_function_type): Correctly overwrite incomplete | |
752 | return type with void type. | |
753 | * typeck.c (check_return_expr): If the function's return type is | |
754 | void, don't try and convert a return expr. | |
755 | ||
756 | 2005-10-12 David Edelsohn <edelsohn@gnu.org> | |
757 | ||
758 | PR c++/23730 | |
759 | * call.c (build_object_call): If BINFO is NULL, bypass | |
760 | lookup_fnfields and set fns to NULL_TREE. | |
761 | ||
762 | 2005-10-12 Paolo Bonzini <bonzini@gnu.org> | |
763 | ||
764 | PR c++/24052 | |
765 | * error.c (dump_expr): Pass LABEL_DECL to dump_decl. Print | |
766 | an ADDR_EXPR of a LABEL_DECL as &&. | |
767 | ||
768 | 2005-10-12 Nathan Sidwell <nathan@codesourcery.com> | |
769 | ||
770 | PR c++/19964 | |
771 | * class.c (walk_subobject_offsets): Don't walk error_mark_node. | |
772 | ||
773 | 2005-10-11 Ian Lance Taylor <ian@airs.com> | |
774 | ||
775 | PR c++/8057 | |
776 | * cvt.c (convert_to_void): Don't warn about unused values when | |
777 | processing a template declaration. | |
778 | ||
779 | 2005-10-11 Mark Mitchell <mark@codesourcery.com> | |
780 | ||
781 | PR c++/21089 | |
782 | * call.c (convert_like_real): Use decl_constant_value, not | |
783 | integral_constant_value. | |
784 | * init.c (constant_value_1): New function. | |
785 | (integral_constant_value): Use it. | |
786 | (decl_constant_value): Likewise. | |
787 | * typeck.c (decay_conversion): Use decl_constant_value, not | |
788 | integral_constant_value. | |
789 | ||
790 | PR c++/21369 | |
791 | * parser.c (cp_parser_elaborated_type_specifier): Don't treat | |
792 | class types as templates if the type is not appearing as part of a | |
793 | type definition or declaration. | |
794 | ||
795 | 2005-10-10 Mark Mitchell <mark@codesourcery.com> | |
796 | ||
797 | PR c++/24277 | |
798 | * pt.c (instantiate_decl): Call finish_static_data_member_decl for | |
799 | static data members. | |
800 | ||
801 | 2005-10-10 Giovanni Bajo <giovannibajo@gcc.gnu.org> | |
802 | Mark Mitchell <mark@codesourcery.com> | |
803 | ||
804 | PR c++/23437 | |
805 | * parser.c (cp_parser_template_argument_list): Do not treat | |
806 | contents of argument list as part of a constant expression. | |
807 | ||
808 | 2005-10-10 Mark Mitchell <mark@codesourcery.com> | |
809 | ||
810 | PR c++/24139 | |
811 | * decl.c (grokdeclarator): Do not require template parameter lists | |
812 | for explicitly specialized class. | |
813 | * error.c (dump_aggr_type): Do not dump template arguments for | |
814 | non-primary specializations. | |
815 | (dump_function_name): Likewise. | |
816 | ||
817 | PR c++/24275 | |
818 | * pt.c (instantiate_decl): Instantiate the initializer of | |
819 | a static data member in the namespace containing the class | |
820 | containing the static data member. | |
821 | ||
822 | 2005-10-08 James A. Morrison <phython@gcc.gnu.org> | |
823 | ||
824 | PR c++/22172 | |
825 | * parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype | |
826 | scopes as nondependent. | |
827 | ||
828 | 2005-10-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
829 | ||
830 | * call.c (resolve_args): Remove redundant test. | |
831 | ||
832 | 2005-10-05 Paolo Bonzini <bonzini@gnu.org> | |
833 | ||
834 | PR tree-optimization/21419 | |
835 | PR tree-optimization/24146 | |
836 | PR tree-optimization/24151 | |
837 | ||
838 | * semantics.c (finish_asm_stmt): Call readonly_error if outputs are | |
839 | read-only. Set ASM_VOLATILE_P for asms without outputs. | |
840 | ||
841 | 2005-10-05 Nathan Sidwell <nathan@codesourcery.com> | |
842 | ||
843 | PR c++/23513 | |
844 | * call.c (joust): Adjust length count to more_specialized_fn. | |
845 | * pt.c (more_specialized_fn): Cope with non-static member vs | |
846 | non-member. | |
847 | ||
848 | 2005-10-04 Andrew Pinski <pinskia@physics.uc.edu> | |
849 | ||
850 | PR middle-end/23125 | |
851 | * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name | |
852 | instead of change_decl_assembler_name. | |
853 | ||
854 | 2005-10-03 Alexandre Oliva <aoliva@redhat.com> | |
855 | ||
856 | * error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message. | |
857 | ||
858 | 2005-10-03 Mark Mitchell <mark@codesourcery.com> | |
859 | ||
860 | PR c++/17775 | |
861 | * repo.c: Include flags.h. | |
862 | (finish_repo): Add -frandom-seed to the arguments. | |
863 | ||
864 | 2005-10-02 Mark Mitchell <mark@codesourcery.com> | |
865 | ||
866 | PR c++/22621 | |
867 | * parser.c (cp_parser_template_argument): Don't turn "T::f" into | |
868 | "(*this).T::f". | |
869 | * pt.c (convert_nontype_argument): Remove ??? comment. | |
870 | ||
871 | PR c++/23840 | |
872 | * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue, | |
873 | when class rvalues are lvalues. | |
874 | ||
875 | 2005-09-28 Mark Mitchell <mark@codesourcery.com> | |
876 | ||
877 | PR c++/16782 | |
878 | * decl.c (grokdeclarator): Always pedwarn about overqualified | |
879 | member names. | |
880 | ||
881 | 2005-09-27 Mark Mitchell <mark@codesourcery.com> | |
882 | ||
883 | PR c++/22147 | |
884 | * name-lookup.c (maybe_process_template_type_declaration): Don't | |
885 | treat forward declarations of classes as templates just because | |
886 | we're processing_template_decl. | |
887 | * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend | |
888 | functions. | |
889 | ||
890 | 2005-09-26 Jason Merrill <jason@redhat.com> | |
891 | ||
892 | PR c++/13764 | |
893 | * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro. | |
894 | * name-lookup.c (pushdecl_maybe_friend): Check it. | |
895 | * decl.c (begin_function_body): Do nothing if it's false. | |
896 | (finish_function_body): Ditto. | |
897 | (outer_curly_brace_block): New fn. | |
898 | (finish_function): Use it. | |
899 | ||
900 | 2005-09-26 Richard Guenther <rguenther@suse.de> | |
901 | ||
902 | PR middle-end/15855 | |
903 | * decl2.c (do_static_destruction): Remove. | |
904 | (finish_static_initialization_or_destruction): Likewise. | |
905 | (DECL_EFFECTIVE_INIT_PRIORITY): New macro. | |
906 | (NEEDS_GUARD_P): Likewise. | |
907 | (do_static_initialization): Rename to | |
908 | do_static_initialization_or_destruction. Process all | |
909 | initializers/destructors and handle common conditionalizing. | |
910 | (start_static_initialization_or_destruction): Rename to | |
911 | one_static_initialization_or_destruction. Handle only | |
912 | decl-specific conditionalizing. | |
913 | (cp_finish_file): Call do_static_initialization_or_destruction. | |
914 | ||
915 | 2005-09-22 Jakub Jelinek <jakub@redhat.com> | |
916 | ||
917 | PR c++/21983 | |
918 | * class.c (find_final_overrider): Move diagnostic about no unique final | |
919 | overrider to... | |
920 | (update_vtable_entry_for_fn): ... here. | |
921 | ||
922 | 2005-09-21 Mark Mitchell <mark@codesourcery.com> | |
923 | ||
924 | PR c++/23993 | |
925 | * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P. | |
926 | ||
927 | 2005-09-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
928 | ||
929 | PR c++/23965 | |
930 | * call.c (resolve_args): Return error_mark_node on arguments | |
931 | whose TREE_TYPE is error_mark_node. | |
932 | ||
933 | 2005-09-20 Jakub Jelinek <jakub@redhat.com> | |
934 | ||
935 | PR c++/23947 | |
936 | * rtti.c (get_pseudo_ti_init): Recompute ti pointer after | |
937 | get_tinfo_ptr calls. | |
938 | ||
939 | 2005-09-16 Mark Mitchell <mark@codesourcery.com> | |
940 | ||
941 | PR c++/23914 | |
942 | * parser.c (cp_parser_enclosed_template_argument_list): Make sure | |
943 | skip_evaluation is false when processing template arguments. | |
944 | ||
945 | PR c++/21514 | |
946 | * pt.c (check_instantiated_args): Treat uses of anonymous types as | |
947 | causing type-deduction failure. | |
948 | ||
949 | 2005-09-15 Jason Merrill <jason@redhat.com> | |
950 | ||
951 | PR c++/23357 | |
952 | * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to | |
953 | tcc_expression. | |
954 | ||
955 | 2005-09-15 Mark Mitchell <mark@codesourcery.com> | |
956 | ||
957 | PR c++/23896 | |
958 | * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when | |
959 | processing template arguments. | |
960 | ||
961 | * pt.c (check_explicit_instantiation_namespace): Fix typo. | |
962 | ||
963 | PR c++/13140 | |
964 | * decl.c (check_class_member_definition_namespace): New function. | |
965 | (grokfndecl): Use it. | |
966 | (grokvardecl): Likewise. | |
967 | (grokdecl): Improve documentation. | |
968 | * pt.c (check_explicit_instantiation_namespace): New function. | |
969 | (register_specialization): Call check_specialization_namespace | |
970 | when replacing an implicitly instantiated function. | |
971 | (check_explicit_specialization): Ensure that DECL_CONTEXT is set | |
972 | correctly for namespace-scope specializations. | |
973 | (do_decl_instantiation): Use | |
974 | check_explicit_instantiation_namespace. | |
975 | (do_type_instantiation): Likewise. | |
976 | ||
977 | 2005-09-15 Nathan Sidwell <nathan@codesourcery.com> | |
978 | ||
979 | PR c++/23725 | |
980 | * error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE. | |
981 | ||
982 | 2005-09-13 Bastian Blank <waldi@debian.org> | |
983 | ||
984 | PR c++/16171 | |
985 | * mangle.c (find_substitution): Do not use special substitutions | |
986 | for identifiers not in std::. | |
987 | ||
988 | 2005-09-13 Mark Mitchell <mark@codesourcery.com> | |
989 | ||
990 | PR c++/23839 | |
991 | * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER | |
992 | for VAR_DECLs. | |
993 | ||
994 | 2005-09-13 Mark Mitchell <mark@codesourcery.com> | |
995 | ||
996 | PR c++/23842 | |
997 | * pt.c (tsubst_default_argument): Do treat default argument | |
998 | expressions as occurring in the context of the function called. | |
999 | ||
1000 | 2005-09-12 Mark Mitchell <mark@codesourcery.com> | |
1001 | ||
1002 | PR c++/23841 | |
1003 | * parser.c (cp_parser_primary_expression): Recognize the closing | |
1004 | ">" of a template-argument-list after a floating-point literal as | |
1005 | the end of a cast expression. | |
1006 | ||
1007 | 2005-09-12 Mark Mitchell <mark@codesourcery.com> | |
1008 | ||
1009 | PR c++/23789 | |
1010 | * cvt.c (perform_qualification_conversions): Don't create | |
1011 | unnecessary NOP_EXPRs. | |
1012 | * pt.c (tsubst_template_arg): Use fold_non_dependent_expr. | |
1013 | ||
1014 | 2005-09-12 Ian Lance Taylor <ian@airs.com> | |
1015 | ||
1016 | PR g++/7874 | |
1017 | * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p | |
1018 | bitfield. Make dummy bitfield one bit smaller. | |
1019 | (DECL_HIDDEN_FRIEND_P): Define. | |
1020 | (pushdecl_maybe_friend): Declare. | |
1021 | (pushdecl_top_level_maybe_friend): Declare. | |
1022 | * decl.c (duplicate_decls): Add newdecl_is_friend parameter. | |
1023 | Change prototype and all callers. Add assertion that a | |
1024 | DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P. Set | |
1025 | DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if | |
1026 | appropriate. | |
1027 | * name-lookup.c (supplement_binding): Don't ignore a | |
1028 | DECL_HIDDEN_FRIEND_P. | |
1029 | (pushdecl_maybe_friend): Break out contents of pushdecl. Add | |
1030 | is_friend parameter. Set DECL_ANTICIPATED and | |
1031 | DECL_HIDDEN_FRIEND_P for a friend function. | |
1032 | (pushdecl): Just call pushdecl_maybe_friend. | |
1033 | (pushdecl_with_scope): Add is_friend parameter. Change prototype | |
1034 | and all callers. | |
1035 | (pushdecl_namespace_level): Likewise. | |
1036 | (push_overloaded_decl): Likewise. Check DECL_HIDDEN_FRIEND_P as | |
1037 | well as DECL_ANTICIPATED when checking for a builtin. | |
1038 | (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as | |
1039 | DECL_ANTICIPATED when checking for a builtin. | |
1040 | (do_nonmember_using_decl): Likewise. | |
1041 | (pushdecl_top_level_1): Add is_friend parameter. Change all | |
1042 | callers. | |
1043 | (pushdecl_top_level_maybe_friend): New function. | |
1044 | (remove_hidden_names): New function. | |
1045 | (struct arg_lookup): Add args field. | |
1046 | (friend_of_associated_class_p): New static function. | |
1047 | (arg_assoc_namespace): Ignore hidden functions which are not | |
1048 | friends of an associated class of some argument. | |
1049 | (lookup_arg_dependent): Remove hidden functions from list passed | |
1050 | in. Initialize k.args. | |
1051 | * name-lookup.h (remove_hidden_names): Declare. | |
1052 | * friend.c (do_friend): Call pushdecl_maybe_friend instead of | |
1053 | pushdecl. | |
1054 | * call.c (add_function_candidate): Change DECL_ANTICIPATED test to | |
1055 | an assertion, with a check for DECL_HIDDEN_FRIEND_P. | |
1056 | (build_new_function_call): Add koenig_p parameter. Change | |
1057 | prototype and callers. | |
1058 | * pt.c (register_specialization): Add is_friend parameter. Change | |
1059 | all callers. | |
1060 | (push_template_decl_real): Change is_friend parameter to bool. | |
1061 | Change prototype and all callers. | |
1062 | (tsubst_friend_class): Call pushdecl_top_level_maybe_friend | |
1063 | instead of pushdecl_top_level. | |
1064 | ||
1065 | 2005-09-11 Richard Henderson <rth@redhat.com> | |
1066 | ||
1067 | * decl2.c (build_anon_union_vars): Copy attributes from the base addr. | |
1068 | * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR. | |
1069 | ||
1070 | 2005-09-09 Gabriel Dos Reis <gdr@integrable-solutions.net> | |
1071 | ||
1072 | * parser.c (cp_parser_translation_unit): Simplify. The while-block | |
1073 | was actually executed at most once. | |
1074 | ||
1075 | 2005-09-09 Richard Henderson <rth@redhat.com> | |
1076 | ||
1077 | PR debug/20998 | |
1078 | * cp-tree.def (ALIAS_DECL): Remove. | |
1079 | * cp-lang.c (cp_init_ts): Remove support for it. | |
1080 | * error.c (dump_decl): Likewise. | |
1081 | * name-lookup.c (pushdecl): Likewise. | |
1082 | * semantics.c (finish_id_expression): Likewise. | |
1083 | * decl2.c (build_anon_union_vars): Use a VAR_DECL with | |
1084 | DECL_VALUE_EXPR instead. | |
1085 | ||
1086 | 2005-09-09 Mark Mitchell <mark@codesourcery.com> | |
1087 | ||
1088 | PR c++/22252 | |
1089 | * decl.c (start_preparsed_function): Do not pay attention to | |
1090 | #pragma interface for implicitly-defined methods. | |
1091 | * decl2.c (cp_finish_file): Do not complain about uses of inline | |
1092 | functions that have bodies, even if we decided not to emit the | |
1093 | body in this translation unit. | |
1094 | * semantics.c (note_decl_for_pch): Do not mess with linkage. | |
1095 | (expand_or_defer_fn): Make inline, non-template functions COMDAT | |
1096 | at this point. | |
1097 | ||
1098 | 2005-09-08 Richard Henderson <rth@redhat.com> | |
1099 | ||
1100 | PR debug/23190 | |
1101 | * decl.c (wrapup_globals_for_namespace): Call | |
1102 | emit_debug_global_declarations. | |
1103 | * decl2.c (cp_finish_file): Likewise. | |
1104 | ||
1105 | 2005-09-08 Mark Mitchell <mark@codesourcery.com> | |
1106 | ||
1107 | PR c++/23691 | |
1108 | * decl2.c (mark_used): Instantiate static data members initialized | |
1109 | by constants, even in a template. | |
1110 | ||
1111 | 2005-09-08 Andrew Pinski <pinskia@physics.uc.edu> | |
1112 | ||
1113 | PR obj-c++/16816 | |
1114 | * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as | |
1115 | two CPP_COLON. | |
1116 | ||
1117 | 2005-09-07 Richard Guenther <rguenther@suse.de> | |
1118 | ||
1119 | * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR | |
1120 | for EMPTY_CLASS_EXPR. | |
1121 | ||
1122 | 2005-09-06 Jakub Jelinek <jakub@redhat.com> | |
1123 | ||
1124 | PR c/23075 | |
1125 | * typeck.c (check_return_expr): Add no_warning argument. Set | |
1126 | *no_warning to true if "return-statement with no value, in function | |
1127 | returning" warning has been issued. | |
1128 | * cp-tree.h (check_return_expr): Adjust prototype. | |
1129 | * semantics.c (finish_return_stmt): Set TREE_NO_WARNING if | |
1130 | check_return_expr set *no_warning to true. | |
1131 | ||
1132 | 2005-09-06 Mark Mitchell <mark@codesourcery.com> | |
1133 | ||
1134 | * cp-tree.h (rvalue): New function. | |
1135 | * call.c (build_conditional_expr): Use it. | |
1136 | * init.c (build_new_1): Likewise. | |
1137 | * rtti.c (build_dynamic_cast_1): Likewise. | |
1138 | * tree.c (rvalue): New function. | |
1139 | * typeck.c (build_unary_op): Use it. | |
1140 | (build_static_cast_1): Likewise. | |
1141 | ||
1142 | PR c++/9782 | |
1143 | * init.c (build_new_1): Make sure the entire array type is | |
1144 | complete, not just its element types. | |
1145 | ||
1146 | 2005-09-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1147 | ||
1148 | * decl.c (check_elaborated_type_specifier): Remove redundant check. | |
1149 | ||
1150 | 2005-09-06 Jakub Jelinek <jakub@redhat.com> | |
1151 | ||
1152 | PR c++/23056 | |
1153 | * typeck.c (ignore_overflows): New helper function. | |
1154 | (build_static_cast_1): Use it. | |
1155 | ||
1156 | 2005-09-06 Kazu Hirata <kazu@codesourcery.com> | |
1157 | ||
1158 | * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos. | |
1159 | Follow spelling conventions. | |
1160 | ||
1161 | 2005-09-05 Mark Mitchell <mark@codesourcery.com> | |
1162 | ||
1163 | PR c++/23667 | |
1164 | * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when | |
1165 | copying a VAR_DECL. | |
1166 | ||
1167 | 2005-09-05 Mark Mitchell <mark@codesourcery.com> | |
1168 | ||
1169 | PR c++/21440 | |
1170 | * semantics.c (finish_stmt_expr_expr): Add an explicit | |
1171 | initialization to the last statement in the statement-expression. | |
1172 | * (finish_stmt_expr): Adjust accordingly. | |
1173 | ||
1174 | 2005-09-03 Mark Mitchell <mark@codesourcery.com> | |
1175 | ||
1176 | PR c++/23699 | |
1177 | * decl2.c (mark_used): Always instantiate static data members | |
1178 | initialized by constant expressions. | |
1179 | * pt.c (instantiate_decl): Instantiate the initializers for static | |
1180 | data members initialized by constant expressions. | |
1181 | ||
1182 | PR c++/21687 | |
1183 | * semantics.c (expand_or_defer_fn): Do not call ggc_collect when | |
1184 | finishing processing for a template function in a local class. | |
1185 | Revert: | |
1186 | 2005-09-02 Mark Mitchell <mark@codesourcery.com> | |
1187 | * parser.c (cp_parser_class_specifier): Push/pop GC contexts | |
1188 | around functions in local classes. | |
1189 | ||
1190 | 2005-09-02 Mark Mitchell <mark@codesourcery.com> | |
1191 | ||
1192 | PR c++/21687 | |
1193 | * parser.c (cp_parser_class_specifier): Push/pop GC contexts | |
1194 | around functions in local classes. | |
1195 | ||
1196 | 2005-08-31 Andrew Pinski <pinskia@physics.uc.edu> | |
1197 | ||
1198 | PR obj-c++/23640 | |
1199 | * decl2.c (cp_finish_file): If this is obj-c++ and we need a static | |
1200 | init, call generate_ctor_or_dtor_function. | |
1201 | ||
1202 | 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1203 | ||
1204 | PR c++/13377 | |
1205 | * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to | |
1206 | lookup_name_real on final parse. | |
1207 | ||
1208 | 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1209 | ||
1210 | PR c++/23639 | |
1211 | * semantics.c (qualified_name_lookup_error): Do not complain again | |
1212 | on invalid scope. | |
1213 | ||
1214 | 2005-08-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1215 | ||
1216 | PR c++/23586 | |
1217 | * parser.c (cp_parser_namespace_name): Move diagnostic for | |
1218 | invalid namespace-name to here from ... | |
1219 | * name-lookup.c (do_namespace_alias): ... here and ... | |
1220 | (do_using_directive): ... here. Remove dead code. | |
1221 | ||
1222 | 2005-08-28 Mark Mitchell <mark@codesourcery.com> | |
1223 | ||
1224 | PR c++/23099 | |
1225 | * cp-tree.h (saved_scope): Add skip_evaluation. | |
1226 | * decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not | |
1227 | DECL_INITIAL, to determine whether or not a static data member was | |
1228 | initialized in the class-specifier. | |
1229 | (cp_finish_decl): Add comment. | |
1230 | * init.c (integral_constant_value): Subtitute into the | |
1231 | initializers for static data members in templates. | |
1232 | * name-lookup.c (push_to_top_level): Save skip_evaluation. | |
1233 | (pop_from_top_level): Restore it. | |
1234 | * pt.c (instantiate_class_template): Do not substitute into the | |
1235 | intializers of static data members when instantiating a class. | |
1236 | (regenerate_decl_from_template): Simplify. | |
1237 | (instantiate_decl): Tidy. Substitute into the initializer for a | |
1238 | static data member even when the definition of the data member is | |
1239 | not available. | |
1240 | ||
1241 | 2005-08-26 Mark Mitchell <mark@codesourcery.com> | |
1242 | ||
1243 | PR c++/19004 | |
1244 | * pt.c (uses_template_parms): Handle IDENTIFIER_NODE. | |
1245 | (type_dependent_expression_p): Allow BASELINKs whose associated | |
1246 | functions are simply a FUNCTION_DECL. | |
1247 | ||
1248 | PR c++/23491 | |
1249 | * cp-tree.h (build_vec_init): Adjust prototype. | |
1250 | * init.c (perform_member_init): Adjust call to build_vec_init. | |
1251 | (build_aggr_init): Likewise. | |
1252 | (build_new_1): Do not call build_default_init for array types. | |
1253 | (build_vec_init): Add explicit_default_init_p parameter. Perform | |
1254 | default initialization of vector elements when set. | |
1255 | * typeck.c (build_modify_expr): Adjust call to build_vec_init. | |
1256 | ||
1257 | 2005-08-25 Nathan Sidwell <nathan@codesourcery.com> | |
1258 | ||
1259 | PR c++/20817 | |
1260 | * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a | |
1261 | ->*. | |
1262 | ||
1263 | 2005-08-24 Nathan Sidwell <nathan@codesourcery.com> | |
1264 | ||
1265 | PR c++/22454 | |
1266 | * parser.c (cp_lexer_peek_nth_token): Relax assert. | |
1267 | ||
1268 | 2005-08-23 Nathan Sidwell <nathan@codesourcery.com> | |
1269 | ||
1270 | PR c++/23044 | |
1271 | * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain. | |
1272 | ||
1273 | 2005-08-22 James E Wilson <wilson@specifix.com> | |
1274 | ||
1275 | PR tree-optimization/23426 | |
1276 | * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for | |
1277 | array size check. | |
1278 | ||
1279 | 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1280 | ||
1281 | PR c++/22233 | |
1282 | * pt.c (push_template_decl_real): Return error_mark_node if the | |
1283 | number of template parameters does not match previous definition. | |
1284 | ||
1285 | 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1286 | ||
1287 | PR c++/23089 | |
1288 | * decl.c (require_complete_types_for_parms): Mark incomplete types | |
1289 | as invalid. | |
1290 | ||
1291 | 2005-08-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1292 | ||
1293 | * parser.c (cp_parser_nth_token_starts_template_argument_list_p): | |
1294 | Fix typo in leading comment. | |
1295 | ||
1296 | 2005-08-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
1297 | ||
1298 | * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF. | |
1299 | ||
1300 | 2005-08-15 Fariborz Jahanian <fjahanian@apple.com> | |
1301 | ||
1302 | * cp-tree.h (can_convert_arg, fn_type_unification): New argument. | |
1303 | * call.c (add_template_candidate_real): Pass down 'flags' to | |
1304 | fn_type_unification. | |
1305 | (can_convert_arg): New 'flags' argument. Pass it to call to | |
1306 | implicit_conversion instead of LOOKUP_NORMAL. | |
1307 | (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg. | |
1308 | * class.c (resolve_address_of_overloaded_function): Ditto. | |
1309 | (resolve_address_of_overloaded_function): Ditto. | |
1310 | * decl.c (reshape_init, check_default_argument): Ditto. | |
1311 | * typeck.c (build_ptrmemfunc): Ditto. | |
1312 | * pt.c (type_unification_real): Add 'flags' argument. | |
1313 | (fn_type_unification): Pass 'flags' to type_unification_real. | |
1314 | (type_unification_real): Pass new 'flags' argument to call to | |
1315 | can_convert_arg. | |
1316 | ||
1317 | 2005-08-12 Giovanni Bajo <giovannibajo@libero.it> | |
1318 | Nathan Sidwell <nathan@codesourcery.com> | |
1319 | ||
1320 | PR c++/21799 | |
1321 | PR c++/8271 | |
1322 | * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers | |
1323 | explicitly. | |
1324 | ||
1325 | 2005-08-12 Nathan Sidwell <nathan@codesourcery.com> | |
1326 | ||
1327 | PR c++/21799 | |
1328 | Revert my 2005-07-08 patch | |
1329 | * pt.c (type_unification_real): Remove is_method_argument and | |
1330 | assoicated checks. | |
1331 | (fn_type_unification, unify): Adjust type_unification_real calls. | |
1332 | ||
1333 | 2005-08-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1334 | ||
1335 | PR c++/23266 | |
1336 | * decl2.c (grokfield): Check that method is not static before | |
1337 | marking it as pure. | |
1338 | ||
1339 | 2005-08-11 Nathan Sidwell <nathan@codesourcery.com> | |
1340 | ||
1341 | PR c++/23219 | |
1342 | * name-lookup.c (pushtag): Process the template type before | |
1343 | altering the identifier lookup fields. Remove unreachable code | |
1344 | creating an empty stub decl. | |
1345 | ||
1346 | 2005-08-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1347 | ||
1348 | PR c++/20646 | |
1349 | * decl.c (grokdeclarator): Reset storage_class after error. | |
1350 | ||
1351 | 2005-08-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1352 | ||
1353 | PR c++/22508 | |
1354 | * init.c (build_new_1): Check for empty candidate list. | |
1355 | ||
1356 | 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1357 | ||
1358 | PR c++/23191 | |
1359 | * pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node | |
1360 | before calling build_exception_variant. | |
1361 | ||
1362 | 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1363 | ||
1364 | PR c++/19498 | |
1365 | * pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE | |
1366 | if substitution of template args did not succeed. | |
1367 | ||
1368 | 2005-08-06 Michael Matz <matz@suse.de> | |
1369 | ||
1370 | * method.c (use_thunk): Call init_insn_lengths. | |
1371 | ||
1372 | 2005-08-05 James A. Morrison <phython@gcc.gnu.org> | |
1373 | ||
1374 | PR c++/22514 | |
1375 | * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if | |
1376 | sorrycount or errorcount are nonzero. | |
1377 | ||
1378 | 2005-08-05 Mark Mitchell <mark@codesourcery.com> | |
1379 | ||
1380 | * name-lookup.c (pushtag): Remove accidental commit from: | |
1381 | 2004-12-21 Mark Mitchell <mark@codesourcery.com> | |
1382 | PR c++/19063 | |
1383 | * decl.c (grokdeclarator): Return error_mark_node, not | |
1384 | void_type_node, to indicate errors. | |
1385 | * parser.c (cp_parser_template_parameter_list): Robustify. | |
1386 | (cp_parser_template_parameter): Likewise. | |
1387 | ||
1388 | 2005-08-01 Kazu Hirata <kazu@codesourcery.com> | |
1389 | ||
1390 | * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c: | |
1391 | Fix comment typos. | |
1392 | ||
1393 | 2005-07-29 Kazu Hirata <kazu@codesourcery.com> | |
1394 | ||
1395 | * method.c: Fix a comment typo. | |
1396 | ||
1397 | 2005-07-28 Mark Mitchell <mark@codesourcery.com> | |
1398 | ||
1399 | PR c++/22545 | |
1400 | * call.c (add_builtin_candidate): Adjust for changes in | |
1401 | representation of pointer-to-member types. | |
1402 | ||
1403 | 2005-07-28 Mike Stump <mrs@apple.com> | |
1404 | ||
1405 | * pt.c (check_explicit_specialization): Add visibility logic. | |
1406 | (lookup_template_class): Likewise. | |
1407 | (instantiate_class_template): Likewise. | |
1408 | ||
1409 | 2005-07-27 Devang Patel <dpatel@apple.com> | |
1410 | ||
1411 | * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit. | |
1412 | ||
1413 | 2005-07-25 Ian Lance Taylor <ian@airs.com> | |
1414 | ||
1415 | * ptree.c (cxx_print_identifier): Print a leading space if the | |
1416 | indent level is 0. | |
1417 | ||
1418 | 2005-07-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
1419 | ||
1420 | * call.c (convert_for_arg_passing): Check function pointers when | |
1421 | -Wmissing-format-attribute is activated. | |
1422 | * typeck.c (convert_for_assignment): Likewise. | |
1423 | ||
1424 | 2005-07-22 Manfred Hollstein <mh@suse.com> | |
1425 | ||
1426 | * parser.c (cp_parser_declaration): Fix unitialised warnings. | |
1427 | ||
1428 | 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu> | |
1429 | ||
1430 | * class.c (build_base_path): Fix typo. | |
1431 | ||
1432 | 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu> | |
1433 | ||
1434 | PR C++/22358 | |
1435 | * class.c (build_base_path): Convert BINFO_OFFSET to the correct type. | |
1436 | ||
1437 | 2005-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1438 | ||
1439 | * call.c: Fix comment typo(s). | |
1440 | * cxx-pretty-print.h: Likewise. | |
1441 | * name-lookup.c: Likewise. | |
1442 | * parser.c: Likewise. | |
1443 | ||
1444 | 2005-07-20 Douglas Gregor <doug.gregor@gmail.com> | |
1445 | ||
1446 | PR c++/2922 | |
1447 | * semantics.c (perform_koenig_lookup): For dependent calls, just | |
1448 | return the set of functions we've found so far. Later, it will be | |
1449 | augmented by those found through argument-dependent lookup. | |
1450 | * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing | |
1451 | the optimization that skips namespaces where the functions were | |
1452 | originally found. | |
1453 | ||
1454 | 2005-07-20 Giovanni Bajo <giovannibajo@libero.it> | |
1455 | ||
1456 | Make CONSTRUCTOR use VEC to store initializers. | |
1457 | * call.c (convert_default_arg): Update call to digest_init. | |
1458 | * class.c (dump_class_hierarchy, dump_array): Update to cope with | |
1459 | VEC in CONSTRUCTOR_ELTS. | |
1460 | * cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise. | |
1461 | (finish_compound_literal, digest_init): Update declaration. | |
1462 | * decl.c (struct reshape_iter): New data type. | |
1463 | (reshape_init_array): Rename to... | |
1464 | (reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS. | |
1465 | (reshape_init): Rewrite from scratch. Split parts into... | |
1466 | (reshape_init_array, reshape_init_vector, reshape_init_class, | |
1467 | reshape_init_r): New functions. | |
1468 | (check_initializer): Update call to reshape_init. Remove obsolete | |
1469 | code. | |
1470 | (initialize_artificial_var, cp_complete_array_type): Update to cope | |
1471 | with VEC in CONSTRUCTOR_ELTS. | |
1472 | * decl2.c (grokfield): Update calls to digest_init. | |
1473 | (mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS. | |
1474 | * error.c (dump_expr_init_vec): New function. | |
1475 | (dump_expr): Use dump_expr_init_vec. | |
1476 | * init.c (build_zero_init, build_vec_init): Update to cope with VEC | |
1477 | in CONSTRUCTOR_ELTS. | |
1478 | (expand_default_init): Update call to digest_init. | |
1479 | * parser.c (cp_parser_postfix_expression): Use a VEC for the | |
1480 | initializers. | |
1481 | (cp_parser_initializer_list): Build a VEC of initializers. | |
1482 | * pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC | |
1483 | in CONSTRUCTOR_ELTS. | |
1484 | * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer, | |
1485 | ptm_initializer, class_initializer, get_pseudo_ti_init): Use | |
1486 | build_constructor_from_list instead of build_constructor. | |
1487 | * semantics.c (finish_compound_literal): Update call to digest_init. | |
1488 | * tree.c (stabilize_init): Update to cope with VEC in | |
1489 | CONSTRUCTOR_ELTS. | |
1490 | * typeck.c (build_ptrmemfunc1): Likewise. | |
1491 | * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1): | |
1492 | Likewise. | |
1493 | (store_init_value): Use build_constructor_from_list and update call | |
1494 | to digest_init. | |
1495 | (digest_init): Rewrite. | |
1496 | (process_init_constructor): Rewrite from scratch. Split into... | |
1497 | (process_init_constructor_array, picflag_from_initializer, | |
1498 | process_init_constructor_record, process_init_constructor_union): | |
1499 | New functions. | |
1500 | (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE): | |
1501 | New macros. | |
1502 | (build_functional_cast): Use build_constructor_from_list instead of | |
1503 | build_constructor. | |
1504 | ||
1505 | 2005-07-18 Mark Mitchell <mark@codesourcery.com> | |
1506 | ||
1507 | PR c++/22263 | |
1508 | * cp-tree.h (instantiate_decl): Change prototype. | |
1509 | * decl2.c (mark_used): Adjust accordingly. | |
1510 | * pt.c (do_decl_instantiation): Likewise. | |
1511 | (instantiate_class_member): Likewise. | |
1512 | (instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p. | |
1513 | Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template | |
1514 | that has no definition available. | |
1515 | (instantiate_pending_templates): Adjust call to instantiate_decl. | |
1516 | ||
1517 | 2005-07-17 Mark Mitchell <mark@codesourcery.com> | |
1518 | ||
1519 | PR c++/22139 | |
1520 | * cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation. | |
1521 | * decl.c (duplicate_decls): Re-register template specializations | |
1522 | for functions that have DECL_TEMLPLATE_INFO, even if they do not | |
1523 | have DECL_TEMPLATE_INSTANTIATION set. | |
1524 | ||
1525 | 2005-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
1526 | ||
1527 | * call.c (diagnostic_fn_t): New. | |
1528 | (build_temp, convert_like_real): Use diagnostic_fn_t. | |
1529 | ||
1530 | 2005-07-15 Mark Mitchell <mark@codesourcery.com> | |
1531 | ||
1532 | PR c++/22204 | |
1533 | * repo.c (repo_emit_p): Robustify. | |
1534 | ||
1535 | 2005-07-14 Daniel Berlin <dberlin@dberlin.org> | |
1536 | ||
1537 | Fix PR c++/22452 | |
1538 | * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL. | |
1539 | ||
1540 | 2005-07-15 Mark Mitchell <mark@codesourcery.com> | |
1541 | ||
1542 | PR c++/22132 | |
1543 | * call.c (implicit_conversion): Add c_cast_p parameter. | |
1544 | (standard_conversion): Likewise. Allow conversions between | |
1545 | differently-qualified pointer types when performing a C-style | |
1546 | cast. | |
1547 | (add_function_candidate): Adjust callee. | |
1548 | (build_builtin_candidate): Likewise. | |
1549 | (build_user_type_conversion_1): Likewise. | |
1550 | (conditional_conversion): Likewise. | |
1551 | (can_convert_arg): Likewise. | |
1552 | (can_convert_arg_bad): Likewise. | |
1553 | (perform_implicit_conversion): Likewise. | |
1554 | * cp-tree.h (comp_ptr_ttypes_const): Declare. | |
1555 | * typeck.c (comp_ptr_ttypes_const): Give it external linkage. | |
1556 | Return bool. | |
1557 | ||
1558 | 2005-07-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1559 | Nathan Sidwell <nathan@codesourcery.com> | |
1560 | ||
1561 | PR c++/20172 | |
1562 | * pt.c (tsubst_template_parms): Check for invalid non-type | |
1563 | parameters. | |
1564 | ||
1565 | 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu> | |
1566 | ||
1567 | * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup, | |
1568 | decl_shadowed_for_var_insert): Move over to cp-objcp-common.c. | |
1569 | (cp_init_ts): Call init_shadowed_var_for_decl. | |
1570 | Remove include of gt-cp-cp-lang.h. | |
1571 | * cp-objcp-common.c (shadowed_var_for_decl, | |
1572 | decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from | |
1573 | cp-lang.c. | |
1574 | (init_shadowed_var_for_decl): New function to initialize | |
1575 | shadowed_var_for_decl. | |
1576 | Include gt-cp-cp-objcp-common.h. | |
1577 | * Make-lang.in (gt-cp-lang.h): Remove. | |
1578 | (gt-cp-cp-objcp-common.h): Add. | |
1579 | (cp/cp-lang.o): Remove dependancy on gt-cp-lang.h. | |
1580 | (cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h. | |
1581 | * config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c. | |
1582 | * cp-tree (init_shadowed_var_for_decl): Add prototype. | |
1583 | ||
1584 | 2005-07-08 Daniel Berlin <dberlin@dberlin.org> | |
1585 | ||
1586 | * Make-lang.in: Add gt-cp-lang.h. | |
1587 | (cp-lang.o): Ditto. | |
1588 | * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on | |
1589 | the field. | |
1590 | * config-lang.in: Add cp-lang.c to gtfiles. | |
1591 | * cp-lang.c: Include hashtab.h. | |
1592 | (cp_init_ts): New function. | |
1593 | (LANG_HOOK_INIT_TS): Use macro. | |
1594 | (decl_shadowed_for_var_lookup): New function. | |
1595 | (decl_shadowed_for_var_insert): Ditto. | |
1596 | * cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common. | |
1597 | (NON_THUNK_FUNCTION_CHECK): Ditto. | |
1598 | (DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common. | |
1599 | (DECL_INIT_PRIORITY): Ditto. | |
1600 | (DECL_HAS_SHADOWED_FOR_VAR_P): Ditto. | |
1601 | (DECL_SHADOWED_FOR_VAR): Use hashtable. | |
1602 | (SET_DECL_SHADOWED_FOR_VAR): Ditto. | |
1603 | * decl.c (duplicate_decls): Update for new/updated structures. | |
1604 | (poplevel): Use SET_DECL_SHADOWED_FOR_VAR. | |
1605 | * decl2.c (start_static_initialization_or_destruction): Deal with | |
1606 | priority. | |
1607 | * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing | |
1608 | SET_DECL_RTL. | |
1609 | * tree.c (handle_init_priority_attribute): Handle priority. | |
1610 | ||
1611 | 2005-07-08 Nathan Sidwell <nathan@codesourcery.com> | |
1612 | ||
1613 | PR c++/21799 | |
1614 | * pt.c (type_unification_real): Add is_method argument. Use it | |
1615 | for this pointer unification. | |
1616 | (fn_type_unification): Adjust type_unification_real call. | |
1617 | (unify): Likewise. | |
1618 | ||
1619 | 2005-07-07 Nathan Sidwell <nathan@codesourcery.com> | |
1620 | ||
1621 | * pt.c (type_unification_real): Remove allow_incomplete argument. | |
1622 | Remove unreachable code. | |
1623 | (fn_type_unification): Adjust call to type_unification_real. | |
1624 | (unify): Likewise. | |
1625 | ||
1626 | 2005-07-05 Paolo Bonzini <bonzini@gnu.org> | |
1627 | ||
1628 | * Makefile.in (class.o, decl2.o): Adjust dependencies. | |
1629 | * class.c: Include tree-dump.h. | |
1630 | * decl2.c: Include tree-dump.h. | |
1631 | ||
1632 | 2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net> | |
1633 | ||
1634 | * dump.c: Use dump_string_field. | |
1635 | ||
1636 | 2005-07-03 Joseph S. Myers <joseph@codesourcery.com> | |
1637 | ||
1638 | * cp-tree.h (GCC_DIAG_STYLE): #undef before defining. Change | |
1639 | minimum GCC version for format checking to 4.1. | |
1640 | ||
1641 | 2005-07-02 Kazu Hirata <kazu@codesourcery.com> | |
1642 | ||
1643 | * Make-lang.in (cc1plus-checksum.c): Use | |
1644 | build/genchecksum$(build_exeext), not build/genchecksum$(exeext). | |
1645 | ||
1646 | 2005-07-02 Joseph S. Myers <joseph@codesourcery.com> | |
1647 | ||
1648 | * name-lookup.c, parser.c: Use %q, %< and %> to quote in | |
1649 | diagnostics. | |
1650 | ||
1651 | 2005-07-02 Zack Weinberg <zack@codesourcery.com> | |
1652 | Joseph S. Myers <joseph@codesourcery.com> | |
1653 | ||
1654 | * error.c (location_of): Add comment. | |
1655 | (locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove. | |
1656 | * cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove. | |
1657 | * call.c, class.c, decl.c, decl2.c, friend.c, init.c, | |
1658 | name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c, | |
1659 | typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at | |
1660 | or cp_pedwarn_at. Mark up some diagnostic strings with N_. | |
1661 | ||
1662 | 2005-06-30 Daniel Berlin <dberlin@dberlin.org> | |
1663 | ||
1664 | * decl.c (require_complete_types_for_parms): Call relayout_decl | |
1665 | instead of layout_decl. | |
1666 | ||
1667 | 2005-06-30 Zack Weinberg <zack@codesourcery.com> | |
1668 | Jakub Jelinek <jakub@redhat.com> | |
1669 | ||
1670 | * cp-lang.c: No need to include cxx-pretty-print.h. | |
1671 | * error.c (cp_printer): Update signature. No need to process | |
1672 | flags. | |
1673 | (print_instantiation_partial_context): Output last newline | |
1674 | with pp_base_newline. | |
1675 | * Make-lang.in: Update dependencies. | |
1676 | ||
1677 | 2005-06-30 Steven Bosscher <stevenb@suse.de> | |
1678 | ||
1679 | * decl.c (start_decl): Replace DECL_THREAD_LOCAL with | |
1680 | DECL_THREAD_LOCAL_P. | |
1681 | (cp_finish_decl): Likewise. | |
1682 | (grokvardecl): Set the default DECL_TLS_MODEL here. | |
1683 | ||
1684 | 2005-06-28 Joseph S. Myers <joseph@codesourcery.com> | |
1685 | ||
1686 | * cvt.c (ocp_convert): Use invalid_conversion hook. | |
1687 | * typeck.c (build_binary_op): Use invalid_binary_op hook. | |
1688 | (build_unary_op): Use invalid_unary_op hook. | |
1689 | ||
1690 | 2005-06-28 Paul Brook <paul@codesourcery.com> | |
1691 | ||
1692 | * Make-lang.in (cp/except.o): Depend on $(TARGET_H) | |
1693 | * except.c: Include target.h. | |
1694 | (init_exception_processing): Initialize unwind_resume_libfunc. | |
1695 | * doc/tm.texi: Document TARGET_ASM_TTYPE | |
1696 | ||
1697 | 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
1698 | ||
1699 | * call.c (build_over_call): Pass in named argument list to | |
1700 | `check_function_arguments'. | |
1701 | * typeck.c (build_function_call): Likewise. | |
1702 | ||
1703 | 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
1704 | ||
1705 | * cp-tree.h (lang_check_failed): Add noreturn attribute. | |
1706 | ||
1707 | 2005-06-25 Kelley Cook <kcook@gcc.gnu.org> | |
1708 | ||
1709 | * all files: Update FSF address in copyright headers. | |
1710 | ||
1711 | 2005-06-23 Jason Merrill <jason@redhat.com> | |
1712 | ||
1713 | PR c++/19317 | |
1714 | * semantics.c (simplify_aggr_init_expr): Use | |
1715 | CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR. | |
1716 | ||
1717 | 2005-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1718 | ||
1719 | * pt.c (register_specialization): Remove superfluous assertion. | |
1720 | ||
1721 | 2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
1722 | ||
1723 | * call.c (convert_like_real): Add format attribute. | |
1724 | * typeck.c (check_for_casting_away_constness, | |
1725 | build_static_cast_1): Likewise. | |
1726 | * typeck2.c (readonly_error, cxx_incomplete_type_diagnostic): | |
1727 | Likewise. | |
1728 | ||
1729 | 2005-06-17 Geoffrey Keating <geoffk@apple.com> | |
1730 | ||
1731 | PR c++/17413 | |
1732 | * pt.c (type_unification_real): Apply template type deduction even | |
1733 | to procedure parameters that are not dependent on a template | |
1734 | parameter. | |
1735 | ||
1736 | 2005-06-16 Nathan Sidwell <nathan@codesourcery.com> | |
1737 | ||
1738 | * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might | |
1739 | change. | |
1740 | (create_pseudo_type_info): First parameter is an int. | |
1741 | ||
1742 | 2005-06-15 Nathan Sidwell <nathan@codesourcery.com> | |
1743 | ||
1744 | PR c++/20678 | |
1745 | * error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not | |
1746 | null. | |
1747 | ||
1748 | * Make-lang.in: Reformat some long lines. | |
1749 | (gt-cp-rtti.h): New target. | |
1750 | (cp/rtti.o): Add dependency. | |
1751 | * config-lang.in (gtfiles): Add cp/rtti.c. | |
1752 | * cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE, | |
1753 | CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE, | |
1754 | CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, | |
1755 | CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE, | |
1756 | CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove. | |
1757 | (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node, | |
1758 | ary_desc_type_node, func_desc_type_node, enum_desc_type_node, | |
1759 | class_desc_type_node, si_class_desc_type_node, | |
1760 | vmi_class_desc_type_node, ptm_desc_type_node, | |
1761 | base_desc_type_node): Remove. | |
1762 | * decl.c: Adjust documentation of global trees. | |
1763 | * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL, | |
1764 | TINFO_REAL_NAME): Remove. | |
1765 | (struct tinfo_s): New. | |
1766 | (enum tinfo_kind): New. | |
1767 | (tinfo_descs): New. | |
1768 | (get_tinfo_decl): Adjust use of tinfo descriptor. | |
1769 | (tinfo_base_init, generic_initializer, ptr_initializer, | |
1770 | ptm_initializer, class_initializer): Likewise. | |
1771 | (get_pseudo_ti_init): Take descriptor index. Adjust. | |
1772 | (create_pseudo_type_info): Likewise. | |
1773 | (get_pseudo_ti_desc): Return descriptor index. Adjust. | |
1774 | (create_tinfo_types): Adjust use of create_pseudo_type_info. | |
1775 | (emit_tinfo_decl): Adjust use of tinfo descriptor. | |
1776 | ||
1777 | 2005-06-14 Roger Sayle <roger@eyesopen.com> | |
1778 | ||
1779 | * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST. | |
1780 | ||
1781 | 2005-06-13 Geoffrey Keating <geoffk@apple.com> | |
1782 | ||
1783 | * Make-lang.in (c++.install-man): Doesn't really depend on installdirs. | |
1784 | (rule for installing g++.1 manpage): Does depend on installdirs. | |
1785 | ||
1786 | 2005-06-13 Nathan Sidwell <nathan@codesourcery.com> | |
1787 | ||
1788 | PR c++/20789 | |
1789 | * decl.c (cp_finish_decl): Clear runtime runtime initialization if | |
1790 | in-class decl's initializer is bad. | |
1791 | ||
1792 | PR c++/21929 | |
1793 | * parser.c (struct cp_parser): Document that scope could be | |
1794 | error_mark. | |
1795 | (cp_parser_diagnose_invalid_type_name): Cope with error_mark for | |
1796 | scope. | |
1797 | (cp_parser_nested_name_specifier): Return NULL_TREE on error. | |
1798 | (cp_parser_postfix_expression): Deal with null or error_mark | |
1799 | scope. | |
1800 | (cp_parser_elaborated_type_specifier): Adjust | |
1801 | cp_parser_nested_name_specifier call. | |
1802 | ||
1803 | * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup. | |
1804 | ||
1805 | 2005-06-12 Roger Sayle <roger@eyesopen.com> | |
1806 | ||
1807 | PR c++/21930 | |
1808 | * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types. | |
1809 | Treat CONVERT_EXPR identically to NOP_EXPR. | |
1810 | ||
1811 | 2005-06-10 Aldy Hernandez <aldyh@redhat.com> | |
1812 | ||
1813 | PR c++/10611 | |
1814 | * cvt.c (build_expr_type_conversion): Same. | |
1815 | * typeck.c (build_binary_op): Handle vectors. | |
1816 | (common_type): Same. | |
1817 | (type_after_usual_arithmetic_conversions): Same. | |
1818 | ||
1819 | 2005-06-08 Nathan Sidwell <nathan@codesourcery.com> | |
1820 | ||
1821 | PR c++/19497 | |
1822 | * cp-tree.def (USING_DECL): Update documentation. | |
1823 | * cp-tree.h (DECL_DEPENDENT_P): New. | |
1824 | (USING_DECL_DECLS, USING_DECL_SCOPE): New. | |
1825 | * class.c (handle_using_decl): Move most of the processing to ... | |
1826 | * name-lookup.c (do_class_using_decl): ... here. Make stricter. | |
1827 | (push_using_decl): Use USING_DECL_SCOPE. | |
1828 | (cp_emit_debug_info_for_using): Make extern. | |
1829 | * cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust. | |
1830 | * name-lookup.h (cp_emit_debug_info_for_using): Declare. | |
1831 | * pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl | |
1832 | when tsubsting. | |
1833 | (tsubst_expr): Use USING_DECL_SCOPE. | |
1834 | * search.c (lookup_field_1): Use DECL_DEPENDENT_P. | |
1835 | * semantics.c (finish_member_declaration): Likewise. | |
1836 | ||
1837 | 2005-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
1838 | ||
1839 | PR c++/19894 | |
1840 | * pt.c (tsubst): Reject pointer-to-member of type void. | |
1841 | ||
1842 | PR c++/20563 | |
1843 | * parser.c (cp_parser_label_declaration): Deal with invalid/missing | |
1844 | identifiers. | |
1845 | ||
1846 | 2005-06-07 Nathan Sidwell <nathan@codesourcery.com> | |
1847 | ||
1848 | * cp-tree.def (DEFAULT_ARG): Adjust documentation. | |
1849 | * cp-tree.h (DEFARG_INSTANTIATIONS): New. | |
1850 | (struct tree_default_arg): Add instantiations member. | |
1851 | * parser.c (cp_parser_late_parsing_default_args): Adjust to use a | |
1852 | VEC. | |
1853 | * pt.c (tsubst_arg_types): Likewise. | |
1854 | ||
1855 | * parser.c (cp_parser_late_parsing_default_args): Fix overeager | |
1856 | assert in previous patch. | |
1857 | ||
1858 | 2005-06-06 Jakub Jelinek <jakub@redhat.com> | |
1859 | ||
1860 | * error.c (locate_error): Use gmsgid instead of msgid for argument | |
1861 | name. | |
1862 | (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise. | |
1863 | ||
1864 | 2005-06-06 Nathan Sidwell <nathan@codesourcery.com> | |
1865 | ||
1866 | PR 21903 | |
1867 | * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use. | |
1868 | * parser.c (cp_parser_late_parsing_default_args): Propagate parsed | |
1869 | argument to any early instantiations. | |
1870 | * pt.c (tsubst_arg_types): Chain early instantiation of default arg. | |
1871 | ||
1872 | PR c++/20637 | |
1873 | * cp-tree.h (add_method): Add using_decl parameter. | |
1874 | * class.c (add_method): Add using_decl parameter. Adjust error | |
1875 | messages. | |
1876 | (handle_using_decl): Pass the using decl to add_method. | |
1877 | (clone_function_decl): Adjust add_member calls. | |
1878 | * decl2.c (check_classfn): Likewise. | |
1879 | * method.c (lazily_declare_fn): Likewise. | |
1880 | * semantics.c (finish_member_declaration): Likewise. | |
1881 | ||
1882 | * method.c (synthesize_method): Use inform, not warning. | |
1883 | ||
1884 | 2005-06-06 Hans-Peter Nilsson <hp@axis.se> | |
1885 | ||
1886 | * config-lang.in (target_libs): Remove target-gperf. | |
1887 | ||
1888 | 2005-06-05 Mark Mitchell <mark@codesourcery.com> | |
1889 | ||
1890 | PR c++/21619 | |
1891 | * cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro. | |
1892 | * parser.c (cp_parser_postfix_expression): Allow non-constant | |
1893 | expressions as arguments to __builtin_constant_p. | |
1894 | * tree.c (builtin_valid_in_constant_expr_p): Use | |
1895 | DECL_IS_BUILTIN_CONSTANT_P. | |
1896 | ||
1897 | 2005-06-03 Mark Mitchell <mark@codesourcery.com> | |
1898 | ||
1899 | PR c++/21853 | |
1900 | * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on | |
1901 | the pointed-to type for a pointer-to-member. | |
1902 | ||
1903 | PR c++/21336 | |
1904 | * cp-tree.h (grok_op_properties): Remove friendp parameter. | |
1905 | * decl.c (grokfndecl): Adjust call. | |
1906 | (grok_op_properties): Determine the class of which the function is | |
1907 | a member by looking at its DECL_CONTEXT, not current_class_type. | |
1908 | * pt.c (tsubst_decl): Adjust call to grok_op_properties. | |
1909 | ||
1910 | 2005-06-02 Nathan Sidwell <nathan@codesourcery.com> | |
1911 | ||
1912 | * method.c (synthesize_method): Add addtional arg to warning call. | |
1913 | ||
1914 | PR c++/21280 | |
1915 | * Make-lang.in (method.o): Add diagnostic.h | |
1916 | * decl.c (start_preparsed_function): Use decl's location for file | |
1917 | info. | |
1918 | * decl2.c (cp_finish_file): Set input_location before synthesizing | |
1919 | a function. | |
1920 | (mark_used): When deferring a synthesized function, save current | |
1921 | location. Do not set function's location when actually | |
1922 | synthesizing it. | |
1923 | * method.c: #include diagnostic.h. | |
1924 | (synthesize_method): Set the functions source location. Show | |
1925 | needed location if errors are emitted. | |
1926 | ||
1927 | * decl.c (start_decl): Simplify specialization handling. Remove | |
1928 | unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check. | |
1929 | * mangle.c (discriminator_for_local_entity): Use VEC_index. | |
1930 | ||
1931 | PR c++/20350 | |
1932 | * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE. | |
1933 | ||
1934 | PR c++/21151 | |
1935 | * name-lookup.c (pushtag): Push local class even in a template. | |
1936 | ||
1937 | 2005-05-31 Nathan Sidwell <nathan@codesourcery.com> | |
1938 | ||
1939 | PR c++/21165 | |
1940 | * init.c (integral_constant_value): Check the type of the | |
1941 | initializer, not the decl. | |
1942 | ||
1943 | 2005-05-30 Mark Mitchell <mark@codesourcery.com> | |
1944 | ||
1945 | PR c++/21784 | |
1946 | * name-lookup.c (do_nonmember_using_decl): Ignore builtin | |
1947 | functions, even when the used name is not a function. | |
1948 | ||
1949 | 2005-05-30 Kazu Hirata <kazu@cs.umass.edu> | |
1950 | ||
1951 | * operators.def, optimize.c: Update copyright. | |
1952 | ||
1953 | 2005-05-28 Mark Mitchell <mark@codesourcery.com> | |
1954 | ||
1955 | PR c++/21210 | |
1956 | * call.c (standard_conversion): Permit conversions to complex | |
1957 | types if conversion to the corresponding scalar type would be | |
1958 | permitted. | |
1959 | ||
1960 | PR c++/21340 | |
1961 | * method.c (implicitly_declare_fn): Clear processing_template_decl | |
1962 | when generating implicit declaration. | |
1963 | ||
1964 | 2005-05-27 Mark Mitchell <mark@codesourcery.com> | |
1965 | ||
1966 | PR c++/21614 | |
1967 | * typeck.c (get_member_function_from_ptrfunc): Do not attempt | |
1968 | conversions to base classes of incomplete types. | |
1969 | ||
1970 | 2005-05-27 Ian Lance Taylor <ian@airs.com> | |
1971 | ||
1972 | * semantics.c (add_stmt): Add C++ frontend specific version. | |
1973 | * cp-tree.h (STMT_IS_FULL_EXPR_P): Define. | |
1974 | (stmts_are_full_exprs_p): Declare. | |
1975 | ||
1976 | 2005-05-27 Roger Sayle <roger@eyesopen.com> | |
1977 | Giovanni Bajo <giovannibajo@gcc.gnu.org> | |
1978 | ||
1979 | * cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code. | |
1980 | * parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead | |
1981 | of CONVERT_EXPR. | |
1982 | (cp_parser_unary_expression): Likewise. | |
1983 | * typeck.c (build_unary_op): Likewise. | |
1984 | * call.c (add_builtin_candidate, build_new_op): Likewise. | |
1985 | * error.c (dump_expr): Likewise. | |
1986 | * pt.c (tsubst_copy, tsubst_copy_and_build): Likewise. | |
1987 | * decl.c (ambi_op_p, grok_op_properties): Likewise. | |
1988 | * dump.c (dump_op): Likewise. | |
1989 | * lex.c (init_operators): Likewise. | |
1990 | * operators.def ("+"): Likewise. | |
1991 | * cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a | |
1992 | conversion, if the result and argument types differ. | |
1993 | * tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much | |
1994 | like a NOP_EXPR when !processing_template_decl. | |
1995 | ||
1996 | * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype. | |
1997 | (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code. | |
1998 | ||
1999 | 2005-05-27 Nathan Sidwell <nathan@codesourcery.com> | |
2000 | ||
2001 | PR c++/21455 | |
2002 | * typeck.c (get_delta_difference): Cope with incomplete but equal | |
2003 | classes. Reorder if. | |
2004 | ||
2005 | PR c++/21681 | |
2006 | * parser.c (cp_parser_late_parsing_for_member): Disable access | |
2007 | checking for template functions. | |
2008 | ||
2009 | 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
2010 | ||
2011 | PR c++/21768 | |
2012 | * pt.c (redeclare_class_template): Change error message according | |
2013 | to coding conventions. | |
2014 | ||
2015 | 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
2016 | ||
2017 | * call.c (build_op_delete_call): Fix quoting in error message. | |
2018 | ||
2019 | 2005-05-25 Richard Henderson <rth@redhat.com> | |
2020 | ||
2021 | PR libgcj/21692 | |
2022 | * cp-tree.h (make_alias_for): Declare. | |
2023 | * decl2.c (build_java_method_aliases): New. | |
2024 | (cp_finish_file): Call it. | |
2025 | * method.c (make_alias_for): Split out from ... | |
2026 | (make_alias_for_thunk): ... here. | |
2027 | ||
2028 | 2005-05-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
2029 | ||
2030 | PR c++/21686 | |
2031 | * semantics.c (finish_id_expression): Fix quoting in error message. | |
2032 | ||
2033 | 2005-05-25 DJ Delorie <dj@redhat.com> | |
2034 | ||
2035 | * decl.c (duplicate_decls): Move warning control from if() to | |
2036 | warning(OPT_*). | |
2037 | * name-lookup.c (parse_using_directive): Likewise. | |
2038 | * parser.c (cp_parser_elaborated_type_specifier): Likewise. | |
2039 | (cp_parser_init_declarator): Likewise. | |
2040 | * tree.c (handle_com_interface_attribute): Likewise. | |
2041 | ||
2042 | 2005-05-24 Ziemowit Laski <zlaski@apple.com> | |
2043 | ||
2044 | * class.c (layout_class_type): Do not issue C++ ABI warnings | |
2045 | for ObjC structs. | |
2046 | * decl.c (objc_mark_locals_volatile): Streamline by calling | |
2047 | objc_volatilize_decl(). | |
2048 | * parser.c (cp_parser_objc_message_expression): Allow simple | |
2049 | type specifiers (instead of merely type names) as message | |
2050 | receivers. | |
2051 | * pt.c (template_args_equal): Do not call objc_comptypes(). | |
2052 | * typeck.c (composite_pointer_type): If both pointers are | |
2053 | ObjC-esque, arbitrarily choose the first; do not call | |
2054 | objc_comptypes(). | |
2055 | (comptypes): Do not call objc_comptypes(). | |
2056 | (convert_for_assignment): Call objc_compare_types(). | |
2057 | (comp_ptr_ttypes_real): Call objc_type_quals_match() before | |
2058 | concluding that types do not match. | |
2059 | ||
2060 | 2005-05-24 Andrew Pinski <pinskia@physics.uc.edu> | |
2061 | ||
2062 | PR C++/21645 | |
2063 | * optimize.c (update_cloned_parm): Copy the TYPE also from the | |
2064 | original one. | |
2065 | ||
2066 | 2005-05-19 Jakub Jelinek <jakub@redhat.com> | |
2067 | ||
2068 | PR c++/21495 | |
2069 | * decl.c (grokdeclarator): Fix "storage class specified for" | |
2070 | error reporting. | |
2071 | ||
2072 | 2005-05-19 Kazu Hirata <kazu@cs.umass.edu> | |
2073 | ||
2074 | * parser.c: Fix comment typos. | |
2075 | ||
2076 | 2005-05-18 Geoffrey Keating <geoffk@apple.com> | |
2077 | ||
2078 | * Make-lang.in (cc1plus-dummy): New. | |
2079 | (cc1plus-checksum.c): New. | |
2080 | (cc1plus-checksum.o): New. | |
2081 | (cc1plus): Add cc1plus-checksum.o. | |
2082 | ||
2083 | 2005-05-17 H.J. Lu <hongjiu.lu@intel.com> | |
2084 | ||
2085 | PR C++/19664 | |
2086 | * decl2.c (determine_visibility): Don't set visibility to | |
2087 | hidden if it has been set explicitly by user. | |
2088 | ||
2089 | 2005-05-17 Ziemowit Laski <zlaski@apple.com> | |
2090 | Mike Stump <mrs@apple.com> | |
2091 | ||
2092 | Yet more Objective-C++... | |
2093 | ||
2094 | * cp-objcp-common.h (cxx_get_alias_set): Move from | |
2095 | here... | |
2096 | (cxx_warn_unused_global_decl): Likewise. | |
2097 | (cp_expr_size): Likewise. | |
2098 | (cp_tree_size): Likewise. | |
2099 | (cp_var_mod_type_p): Likewise. | |
2100 | (cxx_initialize_diagnostics): Likewise. | |
2101 | (cxx_types_compatible_p): Likewise. | |
2102 | * cp-tree.h: to here. | |
2103 | (do_poplevel): Add. | |
2104 | * lex.c (D_OBJC): Add. | |
2105 | (init_reswords): Add. | |
2106 | * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h. | |
2107 | * parser.c: Add c-common.h include. | |
2108 | * pt.c: Add c-common.h and cp-objcp-common.h includes. | |
2109 | (template_args_equal): Use objc_comptypes as well. | |
2110 | (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well. | |
2111 | * semantics.c (do_poplevel): Remove static. | |
2112 | ||
2113 | * decl.c (objc_mark_locals_volatile): Don't change decls that are | |
2114 | already ok. | |
2115 | * decl2.c (generate_ctor_or_dtor_function): Add code to initialize | |
2116 | Objective C++ early enough. | |
2117 | * lex.c (struct resword reswords): Add Objective-C++ support. | |
2118 | * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++. | |
2119 | (cp_parser_objc_message_receiver): Add. | |
2120 | (cp_parser_objc_message_args): Likewise. | |
2121 | (cp_parser_objc_message_expression): Likewise. | |
2122 | (cp_parser_objc_encode_expression): Likewise. | |
2123 | (cp_parser_objc_defs_expression): Likewise. | |
2124 | (cp_parser_objc_protocol_expression): Likewise. | |
2125 | (cp_parser_objc_selector_expression): Likewise. | |
2126 | (cp_parser_objc_expression): Likewise. | |
2127 | (cp_parser_objc_visibility_spec): Likewise. | |
2128 | (cp_parser_objc_method_type): Likewise. | |
2129 | (cp_parser_objc_protocol_qualifiers): Likewise. | |
2130 | (cp_parser_objc_typename): Likewise. | |
2131 | (cp_parser_objc_selector_p): Likewise. | |
2132 | (cp_parser_objc_selector): Likewise. | |
2133 | (cp_parser_objc_method_keyword_params): Likewise. | |
2134 | (cp_parser_objc_method_tail_params_opt): Likewise. | |
2135 | (cp_parser_objc_interstitial_code): Likewise. | |
2136 | (cp_parser_objc_method_signature): Likewise. | |
2137 | (cp_parser_objc_method_prototype_list): Likewise. | |
2138 | (cp_parser_objc_method_definition_list): Likewise. | |
2139 | (cp_parser_objc_class_ivars): Likewise. | |
2140 | (cp_parser_objc_identifier_list): Likewise. | |
2141 | (cp_parser_objc_alias_declaration): Likewise. | |
2142 | (cp_parser_objc_class_declaration): Likewise. | |
2143 | (cp_parser_objc_protocol_declaration): Likewise. | |
2144 | (cp_parser_objc_protocol_refs_opt): Likewise. | |
2145 | (cp_parser_objc_superclass_or_category): Likewise. | |
2146 | (cp_parser_objc_class_interface): Likewise. | |
2147 | (cp_parser_objc_class_implementation): Likewise. | |
2148 | (cp_parser_objc_end_implementation): Likewise. | |
2149 | (cp_parser_objc_declaration): Likewise. | |
2150 | (cp_parser_objc_try_catch_finally_statement): Likewise. | |
2151 | (cp_parser_objc_synchronized_statement): Likewise. | |
2152 | (cp_parser_objc_throw_statement): Likewise. | |
2153 | (cp_parser_objc_statement): Likewise. | |
2154 | (cp_parser_primary_expression): Add Objective-C++. | |
2155 | (cp_parser_statement): Likewise. | |
2156 | (cp_parser_declaration): Likewise. | |
2157 | (cp_parser_simple_type_specifier): Likewise. | |
2158 | (cp_parser_type_name): Likewise. | |
2159 | (cp_parser_parameter_declaration_list): Likewise. | |
2160 | (cp_parser_member_declaration) Likewise. | |
2161 | * tree.c: Include debug.h. | |
2162 | * typeck.c (composite_pointer_type): Add Objective-C++ support. | |
2163 | (finish_class_member_access_expr): Likewise. | |
2164 | (build_function_call): Allow objc to rewrite FUNCTION_DECLs. | |
2165 | (build_modify_expr): Allow objc to generate write barriers. | |
2166 | ||
2167 | * Make-lang.in (cp/tree.o): Add debug.h. | |
2168 | * tree.c (lvalue_p_1, case CONST_DECL): Add. | |
2169 | ||
2170 | 2005-05-18 Jan Hubicka <jh@suse.cz> | |
2171 | ||
2172 | * method.c: Include tree-pass.h | |
2173 | (use_thunk): Lower body before expanding. | |
2174 | ||
2175 | 2005-05-17 Jakub Jelinek <jakub@redhat.com> | |
2176 | ||
2177 | PR c++/21454 | |
2178 | * decl.c (maybe_deduce_size_from_array_init): Call | |
2179 | cp_apply_type_quals_to_decl after completing array type. | |
2180 | ||
2181 | 2005-05-16 Richard Henderson <rth@redhat.com> | |
2182 | ||
2183 | * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ... | |
2184 | (build_library_fn): ... here. | |
2185 | ||
2186 | 2005-05-12 Ian Lance Taylor <ian@airs.com> | |
2187 | ||
2188 | * cp-tree.h (cp_stmt_codes): Don't define. | |
2189 | (statement_code_p): Declare. | |
2190 | (STATEMENT_CODE_P): Define. | |
2191 | * lex.c (statement_code_p): Define. | |
2192 | (cxx_init): Use actual codes in stmt_codes initializer, not | |
2193 | cp_stmt_codes macro. Initialize statement_code_p directly, rather | |
2194 | than using INIT_STATEMENT_CODES. | |
2195 | ||
2196 | 2005-05-09 Mark Mitchell <mark@codesourcery.com> | |
2197 | ||
2198 | * typeck.c (build_unary_op): Do not resort to address arithmetic | |
2199 | when taking the address of a COMPONENT_REF. | |
2200 | ||
2201 | 2005-05-08 Kazu Hirata <kazu@cs.umass.edu> | |
2202 | ||
2203 | * class.c (vtbl_init_data_s): Change the type of fns to | |
2204 | VEC(tree,gc)*. | |
2205 | (build_vtbl_initializer, add_vcall_offset, add_vcall_offset): | |
2206 | Use VEC instead of VARRAY. | |
2207 | ||
2208 | 2005-05-07 Richard Sandiford <rsandifo@redhat.com> | |
2209 | ||
2210 | * mangle.c: Remove a reference to the MIPS -mint64 option. | |
2211 | ||
2212 | 2005-05-07 Kazu Hirata <kazu@cs.umass.edu> | |
2213 | ||
2214 | * decl.c (wrapup_globals_for_namespace): Use VEC instead of | |
2215 | VARRAY. | |
2216 | * name-lookup.c (add_decl_to_level, begin_scope): Likewise. | |
2217 | * name-lookup.h (cp_binding_level): Change the type of | |
2218 | static_decls to VEC(tree,gc)*. | |
2219 | ||
2220 | * mangle.c (globals): Change the type of substitutions to | |
2221 | VEC(tree,gc)*. | |
2222 | (dump_substitution_candidates, add_substitution, | |
2223 | find_substitution, finish_mangling, init_mangle): Use VEC | |
2224 | instead of VARRAY. | |
2225 | ||
2226 | 2005-05-06 Kazu Hirata <kazu@cs.umass.edu> | |
2227 | ||
2228 | * decl2.c (spew_debug): Remove. | |
2229 | ||
2230 | * decl2.c (ssdf_decls, start_static_storage_duration_function, | |
2231 | generate_ctor_or_dtor_function): Use VEC instead of VARRAY. | |
2232 | ||
2233 | * decl2.c (pending_statics, note_vague_linkage_var, | |
2234 | cp_finish_file): Use VEC instead of VARRAY. | |
2235 | (pending_statics_used): Remove. | |
2236 | ||
2237 | 2005-05-05 Kazu Hirata <kazu@cs.umass.edu> | |
2238 | ||
2239 | * decl2.c (deferred_fns, note_vague_linkage_fn, | |
2240 | cp_finish_file): Use VEC instead of VARRAY. | |
2241 | ||
2242 | 2005-05-05 Mark Mitchell <mark@codesourcery.com> | |
2243 | ||
2244 | PR c++/21352 | |
2245 | * pt.c (build_non_dependent_expr): Use is_overloaded_fn. | |
2246 | ||
2247 | 2005-05-05 Kazu Hirata <kazu@cs.umass.edu> | |
2248 | ||
2249 | * pt.c: Fix a comment typo. | |
2250 | ||
2251 | 2005-05-04 Kazu Hirata <kazu@cs.umass.edu> | |
2252 | ||
2253 | * cp-tree.h (language_function): Change the type of | |
2254 | x_local_names to VEC. | |
2255 | * decl.c (push_local_name): Adjust uses of local_names. | |
2256 | ||
2257 | 2005-05-03 Kazu Hirata <kazu@cs.umass.edu> | |
2258 | ||
2259 | * friend.c, lex.c, mangle.c, repo.c: Update copyright. | |
2260 | ||
2261 | 2005-05-02 Kazu Hirata <kazu@cs.umass.edu> | |
2262 | ||
2263 | * class.c (local_classes, init_class_processing): Use VEC | |
2264 | instead of VARRAY. | |
2265 | * cp-tree.h (local_classes): Likewise. | |
2266 | * mangle.c (discriminator_for_local_entity): Likewise. | |
2267 | * name-lookup.c (pushtag): Likewise. | |
2268 | ||
2269 | * class.c (current_lang_depth, push_lang_context, | |
2270 | pop_lang_context): Use VEC instead of VARRAY. | |
2271 | * cp-tree.h (saved_scope): Use VEC for lang_base instead of | |
2272 | VARRAY. | |
2273 | * name-lookup.c (push_to_top_level): Use VEC instead of | |
2274 | VARRAY. | |
2275 | ||
2276 | 2005-05-02 Paolo Bonzini <bonzini@gnu.org> | |
2277 | ||
2278 | * semantics.c (finish_call_expr): Call resolve_overloaded_builtin | |
2279 | for BUILT_IN_MD built-ins. | |
2280 | ||
2281 | 2005-05-02 Michael Matz <matz@suse.de> | |
2282 | ||
2283 | PR c++/19542 | |
2284 | * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C | |
2285 | common frontend. | |
2286 | (null_node): Remove. | |
2287 | * lex.c (cxx_init): Move null_node initialisation to C common frontend. | |
2288 | ||
2289 | 2005-04-25 Ian Lance Taylor <ian@airs.com> | |
2290 | ||
2291 | * cp-tree.def: Add EXPR_STMT. | |
2292 | * cp-tree.h (cp_stmt_codes): Add EXPR_STMT. | |
2293 | (EXPR_STMT_EXPR): Define. | |
2294 | * cp-gimplify.c: Include "flags.h". | |
2295 | (gimplify_expr_stmt): New static function. | |
2296 | (cp_gimplify_expr): Handle EXPR_STMT. | |
2297 | * cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression | |
2298 | rather than pp_expression. | |
2299 | (pp_cxx_statement): Handle EXPR_STMT. | |
2300 | * dump.c (cp_dump_tree): Handle EXPR_STMT. | |
2301 | * lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes | |
2302 | initializer. | |
2303 | ||
2304 | 2005-04-25 Andrew Pinski <pinskia@physics.uc.edu> | |
2305 | ||
2306 | PR C++/21188 | |
2307 | * rtti.c (ifnonnull): Cast the zero comparison operand | |
2308 | to the correct type. | |
2309 | ||
2310 | 2005-04-24 Jakub Jelinek <jakub@redhat.com> | |
2311 | ||
2312 | PR middle-end/20991 | |
2313 | * class.c: Include cgraph.h. | |
2314 | (cp_fold_obj_type_ref): Set node->local.vtable_method. | |
2315 | * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H). | |
2316 | ||
2317 | 2005-04-12 Markus F.X.J. Oberhumer <markus@oberhumer.com> | |
2318 | ||
2319 | * mangle.c (write_builtin_type): Handle integer types which are | |
2320 | not one of the shared integer type nodes and emit a "vendor | |
2321 | extended builtin type" with an encoding in the form of "u5int96". | |
2322 | ||
2323 | 2005-04-24 Ian Lance Taylor <ian@airs.com> | |
2324 | ||
2325 | * cp-tree.def (USING_STMT): Change class to tcc_statement. | |
2326 | (TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise. | |
2327 | (IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise. | |
2328 | (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise. | |
2329 | ||
2330 | 2005-04-23 DJ Delorie <dj@redhat.com> | |
2331 | ||
2332 | * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c, | |
2333 | init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c, | |
2334 | repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning() | |
2335 | callers. | |
2336 | ||
2337 | 2005-04-22 Per Bothner <per@bothner.com> | |
2338 | ||
2339 | * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if | |
2340 | input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__. | |
2341 | ||
2342 | 2005-04-22 Alexandre Oliva <aoliva@redhat.com> | |
2343 | ||
2344 | PR c++/21087 | |
2345 | * name-lookup.c (push_overloaded_decl): Do not overload with | |
2346 | non-duplicate anticipated built-in. | |
2347 | ||
2348 | 2005-04-21 Kazu Hirata <kazu@cs.umass.edu> | |
2349 | ||
2350 | * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT, | |
2351 | VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove. | |
2352 | ||
2353 | 2005-04-21 Nathan Sidwell <nathan@codesourcery.com> | |
2354 | ||
2355 | * cp-tree.h: Adjust for new VEC API. | |
2356 | Define VEC(tree_pair_s,gc). | |
2357 | (struct save_scope): Adjust. | |
2358 | (struct lang_type_class): Adjust. | |
2359 | (unemitted_tinfo_decls): Adjust. | |
2360 | * class.c (add_method, resort_type_method_vec, | |
2361 | finish_struct_methods, struct find_final_overrider_data, | |
2362 | dfs_find_final_overrider_pre, find_final_overrider, | |
2363 | get_vcall_index, warn_hidden, walk_subobject_offsets, | |
2364 | check_methods, fixup_inline_methods, end_of_class, | |
2365 | warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer, | |
2366 | add_vcall_offset): Adjust. | |
2367 | * decl.c (xref_basetypes, finish_method): Adjust. | |
2368 | * decl2.c (check_classfn): Adjust. | |
2369 | * init.c (sort_mem_initializers, push_base_cleanups): Adjust. | |
2370 | * method.c (do_build_copy_constructor): Adjust. | |
2371 | * name-lookup.c (new_class_binding, store_binding, | |
2372 | store_bindings, store_class_bindings): Adjust. | |
2373 | * name-lookup.h: Define VEC(cxx_saved_binding,gc), | |
2374 | VEC(cp_class_binding,gc). | |
2375 | (struct cp_binding_level): Adjust. | |
2376 | * parser.c: Define VEC(cp_token_position,heap). | |
2377 | (struct cp_lexer): Adjust. | |
2378 | (cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy, | |
2379 | cp_lexer_save_tokens): Adjust. | |
2380 | * pt.c (retrieve_specialization, | |
2381 | check_explicit_specialization): Adjust. | |
2382 | * rtti.c (unemitted_tinfo_decls): Adjust. | |
2383 | (init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init, | |
2384 | get_pseudo_ti_desc): Adjust. | |
2385 | * search.c (dfs_access_in_type, lookup_conversion_operator, | |
2386 | lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible, | |
2387 | dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust. | |
2388 | * semantics.c: Define VEC(deferred_access,gc). | |
2389 | (push_deferring_access_checks): Adjust. | |
2390 | * typeck2.c (abstract_virtuals_error): Adjust. | |
2391 | ||
2392 | 2005-04-20 Ian Lance Taylor <ian@airs.com> | |
2393 | ||
2394 | * cp-tree.def: Add STMT_EXPR. | |
2395 | * cp-tree.h (STMT_EXPR_NO_SCOPE): Define. | |
2396 | (STMT_EXPR_STMT): Define. | |
2397 | * cxx-pretty-print.c (pp_cxx_primary_expression): Handle | |
2398 | STMT_EXPR. | |
2399 | (pp_cxx_expression): Likewise. | |
2400 | (pp_cxx_statement): Call pp_cxx_statement, not pp_statement. | |
2401 | * dump.c (cp_dump_tree): Handle STMT_EXPR. | |
2402 | ||
2403 | 2005-04-18 Kazu Hirata <kazu@cs.umass.edu> | |
2404 | ||
2405 | * decl.c (expand_static_init): Call build2 and build3 instead | |
2406 | of build. | |
2407 | ||
2408 | * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove. | |
2409 | ||
2410 | 2005-04-17 Ian Lance Taylor <ian@airs.com> | |
2411 | ||
2412 | * cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR. | |
2413 | * cxx-pretty-print.c (pp_cxx_postfix_expression): Handle | |
2414 | ARROW_EXPR. | |
2415 | (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR. | |
2416 | (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and | |
2417 | ALIGNOF_EXPR. | |
2418 | * typeck.c (cxx_sizeof_or_alignof_type): Update call to | |
2419 | c_sizeof_or_alignof_type for change in parameter type. | |
2420 | ||
2421 | 2005-04-16 Mark Mitchell <mark@codesourcery.com> | |
2422 | ||
2423 | PR c++/21025 | |
2424 | * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to | |
2425 | which sizeof/alignof is dependent, rather than just whether we are | |
2426 | processing_template_decl. | |
2427 | ||
2428 | 2005-04-17 Kazu Hirata <kazu@cs.umass.edu> | |
2429 | ||
2430 | * cp-tree.h (LOOKUP_GLOBAL): Remove. | |
2431 | (LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION, | |
2432 | LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES, | |
2433 | LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust | |
2434 | their values. | |
2435 | ||
2436 | 2005-04-15 Richard Henderson <rth@redhat.com> | |
2437 | ||
2438 | PR middle-end/14311 | |
2439 | * semantics.c (finish_call_expr): Call resolve_overloaded_builtin. | |
2440 | ||
2441 | 2005-04-15 Kazu Hirata <kazu@cs.umass.edu> | |
2442 | ||
2443 | * cp-tree.h (lang_type_class): Remove redefined. Move | |
2444 | java_interface into where redefined was. Increment the width | |
2445 | of dummy. | |
2446 | (TYPE_REDEFINED): Remove. | |
2447 | ||
2448 | 2005-04-14 Kazu Hirata <kazu@cs.umass.edu> | |
2449 | ||
2450 | * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS, | |
2451 | CLASSTYPE_TEMPLATE_LEVEL): Remove. | |
2452 | ||
2453 | 2005-04-11 Mark Mitchell <mark@codesourcery.com> | |
2454 | ||
2455 | * decl2.c (determine_visibility): Don't use export_class_data. | |
2456 | (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and | |
2457 | TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY. | |
2458 | ||
2459 | 2005-04-09 Kazu Hirata <kazu@cs.umass.edu> | |
2460 | ||
2461 | * cp-tree.h (cxx_alignof): Remove. | |
2462 | ||
2463 | * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove. | |
2464 | ||
2465 | * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST, | |
2466 | CONV_STATIC_CAST): Remove. | |
2467 | ||
2468 | * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove. | |
2469 | ||
2470 | * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove. | |
2471 | ||
2472 | * cp-tree.h (cp_deprecated): Remove. | |
2473 | ||
2474 | 2005-04-08 Ian Lance Taylor <ian@airs.com> | |
2475 | ||
2476 | * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT, | |
2477 | CONTINUE_STMT, SWITCH_STMT. | |
2478 | * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT, | |
2479 | BREAK_STMT, CONTINUE_STMT, SWITCH_STMT. | |
2480 | (WHILE_COND, WHILE_BODY): Define. | |
2481 | (DO_COND, DO_BODY): Define. | |
2482 | (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define. | |
2483 | (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define. | |
2484 | * cp-gimplify.c (enum bc_t): Define. | |
2485 | (struct cp_gimplify_ctx, ctxp): Define. | |
2486 | (push_context, pop_context): New static functions. | |
2487 | (begin_bc_block, finish_bc_block): New static functions. | |
2488 | (build_bc_goto): New static function. | |
2489 | (gimplify_cp_loop, gimplify_for_stmt): New static functions. | |
2490 | (gimplify_while_stmt, gimplify_do_stmt): Likewise. | |
2491 | (gimplify_switch_stmt): Likewise. | |
2492 | (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT, | |
2493 | SWITCH_STMT, CONTINUE_STMT, BREAK_STMT. | |
2494 | (cp_genericize): Call push_context and pop_context. | |
2495 | * semantics.c (finish_break_stmt): Just call build_stmt | |
2496 | (BREAK_STMT) rather than build_break_stmt. | |
2497 | (finish_continue_stmt): Corresponding change. | |
2498 | * decl.c (pop_switch): Update call to c_do_switch_warnings for new | |
2499 | parameters. | |
2500 | * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT, | |
2501 | WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT. | |
2502 | * dump.c (cp_dump_tree): Likewise. | |
2503 | ||
2504 | 2005-04-08 Mark Mitchell <mark@codesourcery.com> | |
2505 | ||
2506 | PR c++/20905 | |
2507 | * parser.c (cp_parser_type_specifier_seq): Add is_condition | |
2508 | parameter. | |
2509 | (cp_parser_new_type_id): Pass it. | |
2510 | (cp_parser_condition): Likewise. | |
2511 | (cp_parser_conversion_type_id): Likewise. | |
2512 | (cp_parser_type_id): Likewise. | |
2513 | (cp_parser_type_specifier_seq): In a condition, do not allow | |
2514 | invalid type-specifier combinations. | |
2515 | (cp_parser_exception_declaration): Adjust call to | |
2516 | cp_parser_type_specifier_seq. | |
2517 | ||
2518 | * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P. | |
2519 | * cp-tree.h (struct tinst_level): Add in_system_header_p. | |
2520 | (TINST_IN_SYSTEM_HEADER_P): New macro. | |
2521 | (make_tinst_level): Remove. | |
2522 | * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on | |
2523 | the instantiated class. | |
2524 | (push_tinst_level): Do not use make_tinst_level. Set | |
2525 | TINST_IN_SYSTEM_HEADER_P. | |
2526 | (pop_tinst_level): Likewise. | |
2527 | (instantiate_class_template): Set in_system_header. | |
2528 | (instantiate_pending_templates): Likewise. | |
2529 | * tree.c (make_tinst_level): Remove. | |
2530 | ||
2531 | 2005-04-06 Joseph S. Myers <joseph@codesourcery.com> | |
2532 | ||
2533 | * decl.c (start_decl): Apply pending #pragma weak regardless of | |
2534 | scope. | |
2535 | ||
2536 | 2005-04-06 Mark Mitchell <mark@codesourcery.com> | |
2537 | ||
2538 | PR c++/20212 | |
2539 | * pt.c (regenerate_decl_from_template): Copy attributes for | |
2540 | parameters from the pattern to the instantiation. | |
2541 | ||
2542 | 2005-04-05 Mark Mitchell <mark@codesourcery.com> | |
2543 | ||
2544 | PR c++/20734 | |
2545 | * cp-tree.def (OFFSET_REF): Correct comments. | |
2546 | * init.c (build_offset_ref): Remove misleading comment. | |
2547 | * typeck.c (build_unary_op): Handle pointer-to-member creation | |
2548 | here, rather than ... | |
2549 | (unary_complex_lvalue): ... here. | |
2550 | ||
2551 | 2005-04-06 Jason Merrill <jason@redhat.com> | |
2552 | ||
2553 | PR c++/19312 | |
2554 | * tree.c (stabilize_init): Don't bother trying to stabilize | |
2555 | something with no side-effects. | |
2556 | ||
2557 | 2005-04-05 Mark Mitchell <mark@codesourcery.com> | |
2558 | ||
2559 | PR c++/20763 | |
2560 | * decl.c (grokdeclarator): Correct attribute handling. | |
2561 | ||
2562 | 2005-04-05 Mark Mitchell <mark@codesourcery.com> | |
2563 | ||
2564 | PR c++/19159 | |
2565 | * decl2.c (import_export_decl): Use non-COMDAT external linkage | |
2566 | for virtual tables, typeinfo, etc. that will be emitted in only | |
2567 | one translation unit on systems without weak symbols. | |
2568 | ||
2569 | 2005-04-04 Mark Mitchell <mark@codesourcery.com> | |
2570 | ||
2571 | PR c++/20679 | |
2572 | * parser.c (cp_parser_template_name): Fix thinko. | |
2573 | ||
2574 | 2005-04-04 Nathan Sidwell <nathan@codesourcery.com> | |
2575 | ||
2576 | PR c++/20746 | |
2577 | * method.c (use_thunk): Protect covariant pointer return | |
2578 | adjustments from NULL pointers. | |
2579 | ||
2580 | 2005-04-04 Jan Hubicka <jh@suse.cz> | |
2581 | ||
2582 | * decl2.c (finish_objects): Revert my previous patch. | |
2583 | (cp_finish_file): Likewise. | |
2584 | ||
2585 | 2005-04-03 Kazu Hirata <kazu@cs.umass.edu> | |
2586 | ||
2587 | * pt.c: Fix comment typos. | |
2588 | ||
2589 | 2005-04-03 Nathan Sidwell <nathan@codesourcery.com> | |
2590 | ||
2591 | PR c++/20723 | |
2592 | * pt.c (more_specialized_fn): Member functions are unordered wrt | |
2593 | non-members. Conversion operators are unordered wrt other | |
2594 | functions. | |
2595 | ||
2596 | 2005-04-01 Nathan Sidwell <nathan@codesourcery.com> | |
2597 | ||
2598 | * call.c (add_template_candidates_real): Remove length parameter | |
2599 | from fn_type_unification call. | |
2600 | * class.c (resolve_address_of_overloaded_function): Likewise | |
2601 | * cp-tree.h (fn_type_unification): Remove length parameter. | |
2602 | * pt.c (get_bindings_overload): Remove. | |
2603 | (get_bindings_real): Rename to ... | |
2604 | (get_bindings): ... here. Remove length and strict | |
2605 | parameters. Change return type flag to boolean. Remove original | |
2606 | forwarding function. | |
2607 | (determine_specialization): Adjust get_bindings call. | |
2608 | (fn_type_unification): Remove length parameter. Adjust. | |
2609 | (type_unification_real): Remove length parameter. Adjust. | |
2610 | (resolve_overloaded_unification): Adjust get_bindings call. | |
2611 | (try_one_overload): Simplify confusing cascaded if control flow. | |
2612 | (unify): Remove length paramter from type_unification_real call. | |
2613 | (most_specialized_instantiation): Adjust get_bindings calls. | |
2614 | (most_specialized): Likewise. | |
2615 | ||
2616 | 2005-03-31 Nathan Sidwell <nathan@codesourcery.com> | |
2617 | ||
2618 | PR c++/19203, implement DR 214 | |
2619 | * call.c (joust): Use more_specialized_fn. | |
2620 | * cp-tree.h (DEDUCE_ORDER): Remove. | |
2621 | (more_specialized): Replace with ... | |
2622 | (more_specialized_fn): ... this. | |
2623 | * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER | |
2624 | case. | |
2625 | (type_unification_real): Remove DEDUCE_ORDER case. | |
2626 | (more_specialized): Replace with ... | |
2627 | (more_specialized_fn): ... this. Implement DR 214. | |
2628 | (most_specialized_instantiation): Use get_bindings_real directly. | |
2629 | ||
2630 | 2005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net> | |
2631 | ||
2632 | PR c++/18644 | |
2633 | * call.c (build_new_op): Remove check for -Wsynth. | |
2634 | ||
2635 | 2005-03-31 Jan Hubicka <jh@suse.cz> | |
2636 | ||
2637 | * decl2.c (finish_objects): Mark ctor as needed. | |
2638 | (cp_finish_file): Output variables only in nonunit-at-a-time. | |
2639 | ||
2640 | 2005-03-29 Richard Henderson <rth@redhat.com> | |
2641 | ||
2642 | PR c/20519 | |
2643 | * decl.c (cp_complete_array_type): Rename from complete_array_type. | |
2644 | Use the new complete_array_type in c-common.c. Update all callers. | |
2645 | * cp-tree.h (cp_complete_array_type): Update to match. | |
2646 | ||
2647 | 2005-03-24 Geoffrey Keating <geoffk@apple.com> | |
2648 | ||
2649 | * typeck.c (build_static_cast_1): Allow scalar_cast between | |
2650 | any integral, floating, or enumeration type. | |
2651 | ||
2652 | 2005-03-24 Steven Bosscher <stevenb@suse.de> | |
2653 | ||
2654 | * typeck.c (comptypes): First determine if the types are compatible | |
2655 | from a target-independent point of view. Check target attributes | |
2656 | last. | |
2657 | ||
2658 | * class.c (build_base_path): | |
2659 | (build_vbase_offset_vtbl_entries): | |
2660 | (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN. | |
2661 | * error.c (dump_expr): Likewise. | |
2662 | * init.c (build_zero_init, expand_cleanup_for_base, | |
2663 | build_vec_delete_1): Likewise. | |
2664 | * mangle.c (write_integer_cst): Likewise. | |
2665 | * method.c (thunk_adjust): Likewise. | |
2666 | * pt.c (convert_nontype_argument, tsubst, unify): Likewise. | |
2667 | * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise. | |
2668 | * typeck.c (build_ptrmemfunc_access_expr, | |
2669 | (get_member_function_from_ptrfunc): Likewise. | |
2670 | ||
2671 | 2005-03-23 Joseph S. Myers <joseph@codesourcery.com> | |
2672 | ||
2673 | * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove. | |
2674 | ||
2675 | 2005-03-23 Joseph S. Myers <joseph@codesourcery.com> | |
2676 | ||
2677 | * cp-tree.h (perform_integral_promotions): Remove. | |
2678 | (default_conversion): Add. | |
2679 | ||
2680 | 2005-03-22 Mark Mitchell <mark@codesourcery.com> | |
2681 | ||
2682 | * parser.c (cp_parser_warn_min_max): New function. | |
2683 | (cp_parser_binary_expression): Use it. | |
2684 | (cp_parser_assignment_operator_opt): Likewise. | |
2685 | (cp_parser_operator): Likewise. | |
2686 | ||
2687 | 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
2688 | ||
2689 | PR c++/19980 | |
2690 | * decl.c (start_preparsed_function): Robustify. | |
2691 | ||
2692 | 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
2693 | ||
2694 | PR c++/20499 | |
2695 | * parser.c (cp_parser_class_head): Return NULL_TREE when | |
2696 | encountering a redefinition. | |
2697 | ||
2698 | 2005-03-22 Nathan Sidwell <nathan@codesourcery.com> | |
2699 | ||
2700 | PR c++/20465 | |
2701 | PR c++/20381 | |
2702 | * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a | |
2703 | template. | |
2704 | ||
2705 | 2005-03-21 Paolo Carlini <pcarlini@suse.de> | |
2706 | ||
2707 | PR c++/20461 | |
2708 | PR c++/20536 | |
2709 | * init.c (emit_mem_initializers): Don't crash on undefined | |
2710 | types. | |
2711 | ||
2712 | 2005-03-21 Paolo Carlini <pcarlini@suse.de> | |
2713 | ||
2714 | PR c++/20147 | |
2715 | * semantics.c (finish_stmt_expr_expr): Return immediately | |
2716 | if error_operand_p (expr). | |
2717 | ||
2718 | 2005-03-21 Joseph S. Myers <joseph@codesourcery.com> | |
2719 | ||
2720 | * cp-tree.h (lvalue_or_else, lvalue_p): New. | |
2721 | * typeck.c (lvalue_or_else): New. Call lvalue_error. | |
2722 | ||
2723 | 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> | |
2724 | ||
2725 | PR c++/20240 | |
2726 | * decl.c (decls_match): Compare context of VAR_DECL. | |
2727 | ||
2728 | 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> | |
2729 | ||
2730 | PR c++/20333 | |
2731 | * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>: | |
2732 | Check the return value of cp_parser_nested_name_specifier. | |
2733 | ||
2734 | 2005-03-18 Dale Johannesen <dalej@apple.com> | |
2735 | ||
2736 | * cp/tree.c (cp_tree_equal): Handle SSA_NAME. | |
2737 | ||
2738 | 2005-03-18 Paolo Carlini <pcarlini@suse.de> | |
2739 | ||
2740 | PR c++/20463 | |
2741 | * parser.c (cp_parser_diagnose_invalid_type_name): | |
2742 | Check TYPE_BINFO (current_class_type) before attempting | |
2743 | to emit inform messages. | |
2744 | ||
2745 | 2005-03-17 Paolo Carlini <pcarlini@suse.de> | |
2746 | ||
2747 | PR c++/19966 | |
2748 | * cp-tree.h (grok_op_properties): Change return type to void. | |
2749 | * decl.c (grok_op_properties): Return early - don't check the | |
2750 | arity - in case of a static member or an operator that cannot | |
2751 | be non-member; tidy a bit. | |
2752 | ||
2753 | 2005-03-17 Nathan Sidwell <nathan@codesourcery.com> | |
2754 | ||
2755 | PR c++/20186 | |
2756 | * pt.c (contains_dependent_cast_p): Remove. | |
2757 | (fold_non_dependent_expr): Don't use it. | |
2758 | (value_dependent_expression_p): Use a switch statement. | |
2759 | reference_exprs can be dependent. | |
2760 | ||
2761 | 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> | |
2762 | ||
2763 | PR c++/4403 | |
2764 | PR c++/9783, DR433 | |
2765 | * name-lookup.c (pushtag): Skip template parameter scope when | |
2766 | scope is ts_global. Don't push tag into template parameter | |
2767 | scope. | |
2768 | * pt.c (instantiate_class_template): Reorder friend class | |
2769 | template substitution to handle non-dependent friend class | |
2770 | that hasn't been previously declared. | |
2771 | ||
2772 | 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> | |
2773 | ||
2774 | Friend class name lookup 5/n | |
2775 | PR c++/1016 | |
2776 | * cp-tree.h (pushtag): Adjust declaration. | |
2777 | * decl.c (lookup_and_check_tag): Call lookup_type_scope if | |
2778 | lookup_name fails. | |
2779 | (xref_tag): Adjust call to pushtag. Make hidden class visible. | |
2780 | (start_enum): Adjust call to pushtag. | |
2781 | * name-lookup.c (ambiguous_decl): Ignore hidden names. | |
2782 | (qualify_lookup): Change return type to bool. | |
2783 | (hidden_name_p): New function. | |
2784 | (lookup_namespace_name, unqualified_namespace_lookup, | |
2785 | lookup_name_real): Use it. | |
2786 | (lookup_type_scope): Update comments. | |
2787 | (maybe_process_template_type_declaration): Change parameter name | |
2788 | from globalize to is_friend. | |
2789 | (pushtag): Change globalize parameter of type int to tag_scope. | |
2790 | Hide name if introduced by friend declaration. | |
2791 | * name-lookup.h (hidden_name_p): Add declaration. | |
2792 | * parser.c (cp_parser_lookup_name): Don't deal with hidden name | |
2793 | here. | |
2794 | * pt.c (push_template_decl_real): Make hidden class template | |
2795 | visible. | |
2796 | (lookup_template_class, instantiate_class_template): Adjust call | |
2797 | to pushtag. | |
2798 | * semantics.c (begin_class_definition): Likewise. | |
2799 | * rtti.c (init_rtti_processing, build_dynamic_cast_1, | |
2800 | tinfo_base_init, emit_support_tinfos): Use ts_current instead of | |
2801 | ts_global. | |
2802 | ||
2803 | 2005-03-13 Mark Mitchell <mark@codesourcery.com> | |
2804 | ||
2805 | PR c++/20157 | |
2806 | * pt.c (determine_specialization): Reject non-specializations. | |
2807 | ||
2808 | 2005-03-11 Per Bothner <per@bothner.com> | |
2809 | ||
2810 | * cp-tree.h (struct cp_declarator): New id_loc field. | |
2811 | * cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's | |
2812 | location using c_lex_with_flags, instead of input_location. | |
2813 | (cp_parser_direct_declarator): Set declarator's id_loc from | |
2814 | cp_token's id_loc. | |
2815 | ||
2816 | 2005-03-10 Jakub Jelinek <jakub@redhat.com> | |
2817 | ||
2818 | PR c++/18384, c++/18327 | |
2819 | * decl.c (reshape_init_array): Use UHWI type for max_index_cst | |
2820 | and index. Convert max_index to size_type_node if it isn't | |
2821 | host_integerp (, 1). | |
2822 | ||
2823 | 2005-03-09 Mark Mitchell <mark@codesourcery.com> | |
2824 | ||
2825 | PR c++/20208 | |
2826 | * pt.c (tsubst_decl): Apply array-to-pointer and | |
2827 | function-to-pointer conversions to function arguments. | |
2828 | (regenerate_decl_from_template): Likewise. | |
2829 | ||
2830 | 2005-03-09 Paolo Carlini <pcarlini@suse.de> | |
2831 | ||
2832 | PR c++/16859 | |
2833 | * decl.c (complete_array_type): In pedantic mode, return | |
2834 | 3 for an empty initializer list as the initializer for an | |
2835 | array of unknown bound (8.5.1/4). | |
2836 | (maybe_deduce_size_from_array_init): Fix final test to use | |
2837 | the above. | |
2838 | ||
2839 | 2005-03-08 Nathan Sidwell <nathan@codesourcery.com> | |
2840 | ||
2841 | PR c++/20186 | |
2842 | * pt.c (contains_dependent_cast_p): New. | |
2843 | (fold_non_dependent_expr): Call it. | |
2844 | ||
2845 | 2005-03-08 Mark Mitchell <mark@codesourcery.com> | |
2846 | ||
2847 | PR c++/20142 | |
2848 | * cp-tree.h (target_type): Remove. | |
2849 | * decl.c (layout_var_decl): Remove #if 0'd code. | |
2850 | (cp_finish_decl): Remove dead code. | |
2851 | * init.c (build_vec_init): When determining whether or not the | |
2852 | element type has an asignment operator, look through all array | |
2853 | dimensions. | |
2854 | * typeck.c (target_type): Remove. | |
2855 | ||
2856 | 2005-03-07 Mark Mitchell <mark@codesourcery.com> | |
2857 | ||
2858 | * class.c (finish_struct_1): Do not warn about non-virtual | |
2859 | destructors in Java classes. | |
2860 | ||
2861 | 2005-03-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> | |
2862 | ||
2863 | PR c++/19311 | |
2864 | * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF. | |
2865 | * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR | |
2866 | for OFFSET_TYPE. | |
2867 | * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF. | |
2868 | Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR. | |
2869 | (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside | |
2870 | template. | |
2871 | ||
2872 | 2005-03-02 Alexandre Oliva <aoliva@redhat.com> | |
2873 | ||
2874 | * name-lookup.c (push_overloaded_decl): Don't error if the new | |
2875 | decl matches the old one. | |
2876 | * decl.c (redeclaration_error_message): Likewise. | |
2877 | ||
2878 | 2005-03-01 Per Bothner <per@bothner.com> | |
2879 | ||
2880 | * decl.c (finish_function): Use SET_EXPR_LOCATION instead of | |
2881 | unavailable annotate_with_file_line, if USE_MAPPED_LOCATION. | |
2882 | ||
2883 | 2005-03-01 Nathan Sidwell <nathan@codesourcery.com> | |
2884 | ||
2885 | PR c++/20232 | |
2886 | * class.c (update_vtable_entry_for_fn): Don't crash on invalid | |
2887 | covariancy. | |
2888 | ||
2889 | * cp-tree.g (THUNK_TARGET): Expand comment. | |
2890 | * method.c (use_thunk): Make sure we also use the target, if that | |
2891 | is a thunk. | |
2892 | ||
2893 | 2005-02-27 Jakub Jelinek <jakub@redhat.com> | |
2894 | ||
2895 | PR c++/20206 | |
2896 | * decl.c (cxx_comdat_group): Put thunks for | |
2897 | TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same | |
2898 | comdat group as the thunk target. | |
2899 | ||
2900 | 2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
2901 | ||
2902 | * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c, | |
2903 | parser.c: Fix comment typo(s). | |
2904 | ||
2905 | 2005-02-24 Jakub Jelinek <jakub@redhat.com> | |
2906 | ||
2907 | PR c++/20175 | |
2908 | * decl.c (reshape_init): Don't warn about missing braces if STRING_CST | |
2909 | initializes a char/wchar_t array. | |
2910 | ||
2911 | 2005-02-23 Mark Mitchell <mark@codesourcery.com> | |
2912 | ||
2913 | PR c++/19878 | |
2914 | * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations | |
2915 | with internal linkage. | |
2916 | ||
2917 | 2005-02-23 Alexandre Oliva <aoliva@redhat.com> | |
2918 | ||
2919 | * decl.c (grokvardecl): Don't exempt anonymous types from having | |
2920 | linkage for variables that have linkage other than "C". | |
2921 | ||
2922 | 2005-02-23 Kazu Hirata <kazu@cs.umass.edu> | |
2923 | ||
2924 | * cp-objcp-common.h, error.c: Update copyright. | |
2925 | ||
2926 | 2005-02-22 Mark Mitchell <mark@codesourcery.com> | |
2927 | ||
2928 | PR c++/20073 | |
2929 | * decl.c (start_decl_1): Don't clear TREE_READONLY. | |
2930 | (cp_finish_decl): Likewise. | |
2931 | (complete_vars): Call cp_apply_type_quals_to_decl. | |
2932 | * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in | |
2933 | cases where that's not valid. | |
2934 | ||
2935 | PR c++/19991 | |
2936 | * init.c (integral_constant_value): Iterate if the value of a decl | |
2937 | is itself a constant. | |
2938 | ||
2939 | PR c++/20152 | |
2940 | * parser.c (cp_parser_class_head): Check for redefintions here. | |
2941 | * semantics.c (begin_class_definition): Not here. | |
2942 | ||
2943 | PR c++/20153 | |
2944 | * decl2.c (build_anon_union_vars): Add type parameter. | |
2945 | (finish_anon_union): Pass it. | |
2946 | ||
2947 | PR c++/20148 | |
2948 | * error.c (dump_expr): Do not print the body of a BIND_EXPR. | |
2949 | Handle STATEMENT_LIST. | |
2950 | ||
2951 | PR c++/19883 | |
2952 | * parser.c (cp_parser_direct_declarator): Always complain about | |
2953 | non-constant array bounds when in a function scope. | |
2954 | * semantics.c (finish_id_expression): Do not mark dependent names | |
2955 | as non-constant. | |
2956 | ||
2957 | 2005-02-21 Douglas Gregor <dgregor@cs.indiana.edu> | |
2958 | ||
2959 | PR c++/19076 | |
2960 | PR c++/6628 | |
2961 | * cp-tree.h (cp_apply_type_quals_to_decl): Declared. | |
2962 | * decl.c (grokdeclarator): Pedwarn about qualifying a function | |
2963 | type. | |
2964 | Add qualifiers when declaring a typedef of a function type. | |
2965 | Member function pointers pick up the qualifiers of the typedef | |
2966 | used to declare them. | |
2967 | Don't complain about creating cv-qualified function types. | |
2968 | Complain about qualified function typedefs that are used to | |
2969 | declare non-static member functions or free functions. | |
2970 | Use cp_apply_type_quals_to_decl. | |
2971 | (start_preparsed_function): Use cp_apply_type_quals_to_decl. | |
2972 | (grokclassfn): Use cp_apply_type_quals_to_decl. | |
2973 | * error.c (dump_type_suffix): Print qualifiers for function | |
2974 | types. | |
2975 | * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl. | |
2976 | (tsubst): When substituting a function type into a member | |
2977 | pointer type, pass along the qualifiers. | |
2978 | (unify): Unify member pointers to member function pointers. | |
2979 | * tree.c (cp_build_qualified_type_real): Function types may be | |
2980 | qualified. This includes restrict qualifiers. | |
2981 | * typeck.c (cp_apply_type_quals_to_decl): New function to replace | |
2982 | use of c_apply_type_quals_to_decl. Drops qualifiers that are being | |
2983 | added to function types. | |
2984 | ||
2985 | 2005-02-20 Zack Weinberg <zack@codesourcery.com> | |
2986 | ||
2987 | PR 18785 | |
2988 | * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to | |
2989 | c_common_to_target_charset. Delete bogus comment. | |
2990 | ||
2991 | 2005-02-18 Richard Henderson <rth@redhat.com> | |
2992 | ||
2993 | PR libstdc++/10606 | |
2994 | * except.c (do_get_exception_ptr): New. | |
2995 | (expand_start_catch_block): Use it. | |
2996 | ||
2997 | 2005-02-19 Jakub Jelinek <jakub@redhat.com> | |
2998 | ||
2999 | * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING | |
3000 | if type is not error_mark_node. | |
3001 | ||
3002 | 2005-01-20 Giovanni Bajo <giovannibajo@gcc.gnu.org> | |
3003 | ||
3004 | PR c++/19508 | |
3005 | * decl2.c (grokfield): Do not apply attributes to template parameters | |
3006 | as they are ignored by tsubst anyway. | |
3007 | ||
3008 | 2005-02-18 Jakub Jelinek <jakub@redhat.com> | |
3009 | ||
3010 | PR c++/19813 | |
3011 | * decl.c (start_decl_1): Clear TREE_READONLY flag if | |
3012 | its type has TYPE_NEEDS_CONSTRUCTING. | |
3013 | (complete_vars): Likewise. | |
3014 | ||
3015 | 2005-02-17 Alexandre Oliva <aoliva@redhat.com> | |
3016 | ||
3017 | PR c++/20028 | |
3018 | * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a | |
3019 | template along with TYPE_SIZE. | |
3020 | ||
3021 | PR c++/20022 | |
3022 | * semantics.c (perform_deferred_access_checks): Use | |
3023 | get_deferred_access_checks to get the top of the stack. | |
3024 | ||
3025 | 2005-02-15 Alexandre Oliva <aoliva@redhat.com> | |
3026 | ||
3027 | PR c++/17788 | |
3028 | * class.c (add_implicitly_declared_members, check_field_decl) | |
3029 | (check_field_decls, check_bases): Remove arguments, tests and | |
3030 | assignments of cant_have_default_ctor-related variables. | |
3031 | ||
3032 | 2005-02-15 Alexandre Oliva <aoliva@redhat.com> | |
3033 | ||
3034 | * decl2.c (mark_used): Set the source location of the used decl to | |
3035 | the current input location here... | |
3036 | * method.c (synthesize_method): ... not here. Set input_location | |
3037 | from the decl instead. | |
3038 | ||
3039 | 2005-02-14 Nathan Sidwell <nathan@codesourcery.com> | |
3040 | ||
3041 | PR c++/19608 | |
3042 | * parser.c (cp_parser_late_parsing_for_member): Use | |
3043 | current_function_decl as scope to push to and from. | |
3044 | ||
3045 | PR c++/19884 | |
3046 | * pt.c (check_explicit_specialization): Make sure namespace | |
3047 | binding lookup found an overloaded function. | |
3048 | (lookup_template_function): Just assert FNS is an overloaded | |
3049 | function. | |
3050 | ||
3051 | PR c++/19895 | |
3052 | * decl.c (grokdeclarator): Check for error mark node in ptrmem | |
3053 | construction. | |
3054 | ||
3055 | 2005-02-14 Alexandre Oliva <aoliva@redhat.com> | |
3056 | ||
3057 | PR c++/17816 | |
3058 | * decl.c (redeclaration_error_message): Report redefinition of | |
3059 | pure virtual function. | |
3060 | ||
3061 | 2005-02-14 Nathan Sidwell <nathan@codesourcery.com> | |
3062 | ||
3063 | PR c++/19891 | |
3064 | * class.c (build_simple_base_path): Build the component_ref | |
3065 | directly. | |
3066 | (update_vtable_entry_for_fn): Walk the covariant's binfo chain | |
3067 | rather than using lookup_base. | |
3068 | * search.c (dfs_walk_once): Add non-recursive assert check. | |
3069 | * typeck.c (build_class_member_access_expr): It is possible for | |
3070 | the member type to be both const and volatile. | |
3071 | ||
3072 | 2005-02-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> | |
3073 | ||
3074 | PR c++/14479 | |
3075 | PR c++/19487 | |
3076 | * pt.c (maybe_check_template_type): Remove. | |
3077 | * cp-tree.h (maybe_check_template_type): Remove prototype. | |
3078 | * name-lookup.c (maybe_process_template_type_declaration): Don't | |
3079 | use maybe_check_template_type. | |
3080 | ||
3081 | 2005-02-11 Richard Henderson <rth@redhat.com> | |
3082 | ||
3083 | PR c++/19632 | |
3084 | * pt.c (get_mostly_instantiated_function_type): Save and restore | |
3085 | flag_access_control instead of push/pop_access_scope. | |
3086 | ||
3087 | 2005-02-10 Mark Mitchell <mark@codesourcery.com> | |
3088 | ||
3089 | PR c++/19755 | |
3090 | * decl.c (reshape_init): Issue warnings about missing braces. | |
3091 | ||
3092 | 2005-02-11 Kazu Hirata <kazu@cs.umass.edu> | |
3093 | ||
3094 | * cp-tree.def, except.c, ptree.c: Update copyright. | |
3095 | ||
3096 | 2005-02-09 Mark Mitchell <mark@codesourcery.com> | |
3097 | ||
3098 | PR c++/19811 | |
3099 | * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before | |
3100 | attempting name lookup. | |
3101 | ||
3102 | * parser.c (cp_parser_unqualified_id): Initialize type_decl. | |
3103 | ||
3104 | PR c++/19787 | |
3105 | * call.c (initialize_reference): Robustify. | |
3106 | ||
3107 | PR ++/19732 | |
3108 | * decl.c (grokdeclarator): Check for invalid use of destructor | |
3109 | names. | |
3110 | ||
3111 | PR c++/19762 | |
3112 | * parser.c (cp_parser_unqualified_id): Avoid creating destructor | |
3113 | names with invalid types. | |
3114 | ||
3115 | PR c++/19826 | |
3116 | * parser.c (cp_parser_direct_declarator): Allow type-dependent | |
3117 | expressions as array bounds. | |
3118 | ||
3119 | PR c++/19739 | |
3120 | * parser.c (cp_parser_attributes_list): Allow empty lists. | |
3121 | ||
3122 | 2005-02-08 Mark Mitchell <mark@codesourcery.com> | |
3123 | ||
3124 | PR c++/19733 | |
3125 | * class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR. | |
3126 | (check_bases): Give warnings about a base class with a | |
3127 | non-virtual destructor, even if it is implicit. | |
3128 | (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR. | |
3129 | (maybe_warn_about_overly_private_class): Don't use | |
3130 | TYPE_HAS_DESTRUCTOR. | |
3131 | (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR. | |
3132 | (check_for_override): Give it external linkage. | |
3133 | (add_implicitly_declared_members): Generate destructors lazily. | |
3134 | (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not | |
3135 | TYPE_HAS_DESTRUCTOR. | |
3136 | (check_bases_and_members): Call check_methods before | |
3137 | check_field_decls. | |
3138 | (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not | |
3139 | TYPE_HAS_DESTRUCTOR. | |
3140 | (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR. | |
3141 | * cp-tree.def (PSEUDO_DTOR_EXPR): Document. | |
3142 | * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove. | |
3143 | (lang_type_class): Add lazy_destructor. | |
3144 | (CLASSTYPE_LAZY_DESTRUCTOR): New macro. | |
3145 | (CLASSTYPE_DESTRUCTORS): Robustify. | |
3146 | (TYPE_HAS_DESTRUCTOR): Remove. | |
3147 | (check_for_override): Declare. | |
3148 | (build_vbase_delete): Remove. | |
3149 | * cvt.c (convert_to_void): Issue errors about pseudo-destructor | |
3150 | expressions. | |
3151 | * decl.c (cxx_maybe_build_cleanup): Remove dead code. | |
3152 | * except.c (dtor_nothrow): Lazily create destructors if necessary. | |
3153 | (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. | |
3154 | * init.c (build_delete): Lazily create destructors, if necessary. | |
3155 | (build_vbase_delete): Remove. | |
3156 | * method.c (locate_dtor): Simplify. | |
3157 | (implicitly_declare_fn): Add support for destructors. | |
3158 | * parser.c (cp_parser_lookup_name): Lazily create destructors, if | |
3159 | necessary. | |
3160 | * pt.c (check_explicit_specialization): Don't use | |
3161 | TYPE_HAS_DESTRUCTOR. | |
3162 | (instantiate_class_template): Likewise. | |
3163 | * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR. | |
3164 | * rtti.c (emit_support_tinfos): Robustify. | |
3165 | * search.c (lookup_fnfields_1): Lazily create destructors. | |
3166 | * typeck.c (build_class_member_access_expr): Remove | |
3167 | PSEUDO_DTOR_EXPR handling. | |
3168 | (lookup_destructor): Likewise. | |
3169 | ||
3170 | 2005-02-08 Kazu Hirata <kazu@cs.umass.edu> | |
3171 | ||
3172 | * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update | |
3173 | copyright. | |
3174 | ||
3175 | 2005-02-07 Mark Mitchell <mark@codesourcery.com> | |
3176 | ||
3177 | * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations | |
3178 | on boolean variables. | |
3179 | (cp_lexer_stop_debugging): Likewise. | |
3180 | ||
3181 | 2005-02-03 Giovanni Bajo <giovannibajo@gcc.gnu.org> | |
3182 | ||
3183 | PR c++/17401 | |
3184 | * parser.c (cp_parser_pure_specifier): Emit a specific error | |
3185 | message with an invalid pure specifier. | |
3186 | * decl2.c (grok_function_init): Remove. | |
3187 | (grokfield): An initializer for a method is a always a pure | |
3188 | specifier. | |
3189 | ||
3190 | 2005-02-02 Matt Austern <austern@apple.com> | |
3191 | ||
3192 | PR c++/19628 | |
3193 | * cp-tree.h (builtin_valid_in_constant_expr_p): Declare. | |
3194 | * parser.c (cp_parser_postfix_expression): Accept function call in | |
3195 | constant expression if builtin_valid_in_constant_expr_p is true | |
3196 | for that function. | |
3197 | * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly. | |
3198 | * semantics.c (finish_id_expression): Accept function call in constant | |
3199 | expression if builtin_valid_in_constant_expr_p is true for that | |
3200 | function. | |
3201 | * tree.c (builtin_valid_in_constant_expr_p): New. | |
3202 | ||
3203 | 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
3204 | ||
3205 | PR c++/17413 | |
3206 | * pt.c (check_instantiated_args): Improve error message. | |
3207 | Fix logic when to print its second part. | |
3208 | ||
3209 | 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
3210 | ||
3211 | * cp-tree.h (complete_type_or_else): Remove macro. | |
3212 | (complete_type_or_diagnostic): Rename to complete_type_or_else | |
3213 | and remove last argument. | |
3214 | * typeck.c (complete_type_or_diagnostic): Rename to | |
3215 | complete_type_or_else and remove last argument. | |
3216 | ||
3217 | 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
3218 | ||
3219 | * cp-tree.h (commonparms): Remove prototype. | |
3220 | (convert_arguments): Likewise. | |
3221 | (PFN_FROM_PTRMEMFUNC): Remove. | |
3222 | * typeck.c (commonparms): Make static. | |
3223 | (convert_arguments): Add prototype. Make static. | |
3224 | (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc. | |
3225 | ||
3226 | 2005-01-31 Mark Mitchell <mark@codesourcery.com> | |
3227 | ||
3228 | * parser.c (cp_parser_primary_expression): Don't complain about | |
3229 | floating-point literals in integral constant expressions when | |
3230 | !pedantic. | |
3231 | ||
3232 | 2005-02-01 Alexandre Oliva <aoliva@redhat.com> | |
3233 | ||
3234 | * parser.c (cp_parser_template_id): Revert comment patch too. | |
3235 | ||
3236 | PR c++/18757 | |
3237 | PR c++/19366 | |
3238 | PR c++/19499 | |
3239 | * parser.c (cp_parser_template_id): Revert 2004-12-09's patch. | |
3240 | Issue an error when creating the template id. | |
3241 | * pt.c (fn_type_unification): Return early if the explicit | |
3242 | template arg list is an error_mark_node. | |
3243 | ||
3244 | 2005-01-31 Mark Mitchell <mark@codesourcery.com> | |
3245 | ||
3246 | * decl.c (build_enumerator): Do not issue duplicate error messages | |
3247 | about invalid enumeration constants. | |
3248 | * parser.c (cp_parser_non_integral_constant_expression): Always | |
3249 | set parser->non_integral_constant_expression_p. | |
3250 | (cp_parser_primary_expression): Add cast_p parameter. Issue | |
3251 | errors about invalid uses of floating-point literals in | |
3252 | cast-expressions. | |
3253 | (cp_parser_postfix_expression): Add cast_p parameter. | |
3254 | (cp_parser_open_square_expression): Pass it. | |
3255 | (cp_parser_parenthesized_expression_list): Add cast_p parameter. | |
3256 | (cp_parser_unary_expression): Likewise. | |
3257 | (cp_parser_new_placement): Pass it. | |
3258 | (cp_parser_direct_new_declarator): Likewise. | |
3259 | (cp_parser_new_initializer): Likewise. | |
3260 | (cp_parser_cast_expression): Add cast_p parameter. | |
3261 | (cp_parser_binary_expression): Likewise. | |
3262 | (cp_parser_question_colon_clause): Likewise. | |
3263 | (cp_parser_assignment_expression): Likewise. | |
3264 | (cp_parser_expression): Likewise. | |
3265 | (cp_parser_constant_expression): If an integral constant | |
3266 | expression is invalid, return error_mark_node. | |
3267 | (cp_parser_expression_statement): Pass cast_p. | |
3268 | (cp_parser_condition): Likewise. | |
3269 | (cp_parser_iteration_statement): Likewise. | |
3270 | (cp_parser_jump_statement): Likewise. | |
3271 | (cp_parser_mem_initializer): Likewise. | |
3272 | (cp_parser_template_argument): Likewise. | |
3273 | (cp_parser_parameter_declaration): Likewise. | |
3274 | (cp_parser_initializer): Likewise. | |
3275 | (cp_parser_throw_expression): Likewise. | |
3276 | (cp_parser_attribute_list): Likewise. | |
3277 | (cp_parser_simple_cast_expression): Likewise. | |
3278 | (cp_parser_functional_cast): Likewise. | |
3279 | (cp_parser_late_parsing_default_args): Likewise. | |
3280 | (cp_parser_sizeof_operand): Save/restore | |
3281 | non_integral_constant_expression_p. | |
3282 | ||
3283 | 2005-01-31 Mike Stump <mrs@apple.com> | |
3284 | ||
3285 | * parser.c (cp_lexer_new_main): Get the first token, first, before | |
3286 | doing anything. | |
3287 | ||
3288 | 2005-01-31 Mark Mitchell <mark@codesourcery.com> | |
3289 | ||
3290 | * decl.c (start_decl): Add missing parentheses. | |
3291 | ||
3292 | 2005-01-30 Mark Mitchell <mark@codesourcery.com> | |
3293 | ||
3294 | PR c++/19555 | |
3295 | * cp-tree.h (DECL_USE_TEMPLATE): Expand documentation. | |
3296 | * decl.c (duplicate_decls): Do not discard | |
3297 | DECL_IMPLICIT_INSTANTIATION when merging declarations. | |
3298 | (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for | |
3299 | variables that do not have DECL_USE_TEMPLATE. | |
3300 | ||
3301 | PR c++/19395 | |
3302 | * decl.c (grokdeclarator): Refactor code so that qualified names | |
3303 | are never allowed as the declarator in a typedef. | |
3304 | ||
3305 | PR c++/19367 | |
3306 | * name-lookup.c (do_nonmember_using_decl): Avoid overloading | |
3307 | builtin declarations. | |
3308 | ||
3309 | PR c++/19457 | |
3310 | * call.c (convert_like_real): Inline call to | |
3311 | dubious_conversion_warnings here. | |
3312 | * cp-tree.h (dubious_conversion_warnings): Remove. | |
3313 | * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before | |
3314 | setting TREE_NEGATED_INT. | |
3315 | * typeck.c (dubious_conversion_warnings): Remove. | |
3316 | ||
3317 | PR c++/19349 | |
3318 | * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd | |
3319 | memory. | |
3320 | ||
3321 | 2005-01-28 Mark Mitchell <mark@codesourcery.com> | |
3322 | ||
3323 | PR c++/19253 | |
3324 | * parser.c (cp_parser_diagnose_invalid_type_name): Commit to | |
3325 | tentative parses. | |
3326 | ||
3327 | PR c++/19667 | |
3328 | * pt.c (redeclare_class_template): Robustify. | |
3329 | ||
3330 | 2005-01-27 Steven Bosscher <stevenb@suse.de> | |
3331 | ||
3332 | * decl.c (finish_case_label): Use SWITCH_STMT accessor macros | |
3333 | instead of SWITCH_EXPR ones. | |
3334 | * pt.c (tsubst_expr): Likewise. | |
3335 | * semantics.c (begin_switch_stmt, finish_switch_cond, | |
3336 | finish_switch_stmt): Likewise. | |
3337 | ||
3338 | 2005-01-26 J"orn Rennecke <joern.rennecke@st.com> | |
3339 | ||
3340 | PR c++/18370 | |
3341 | * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p. | |
3342 | ||
3343 | 2005-01-25 Andrew Pinski <pinskia@physics.uc.edu> | |
3344 | ||
3345 | * class.c (abort_fndecl_addr): New variable. | |
3346 | (build_vtbl_initializer): If we have a pure virtual function | |
3347 | share the abort function's address. | |
3348 | Include gt-cp-class.h at the end. | |
3349 | * config-lang.in (gtfiles): Add cp/class.c. | |
3350 | ||
3351 | 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
3352 | ||
3353 | * cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static. | |
3354 | (pp_cxx_function_definition): Make static. | |
3355 | * cxx-pretty-print.h (pp_cxx_statement): Remove prototype. | |
3356 | (pp_cxx_function_definition): Likewise. | |
3357 | ||
3358 | 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
3359 | ||
3360 | * name-lookup.c (print_binding_level): Make static. | |
3361 | (constructor_name_full): Make static inline. | |
3362 | (current_decl_namespace): Make static. | |
3363 | * name-lookup.h (constructor_name_full): Remove prototype. | |
3364 | (print_binding_level): Likewise. | |
3365 | (current_decl_namespace): Likewise. | |
3366 | ||
3367 | 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
3368 | ||
3369 | * decl.h (debug_bindings_indentation): Remove. | |
3370 | ||
3371 | 2005-01-23 Kazu Hirata <kazu@cs.umass.edu> | |
3372 | ||
3373 | * typeck.c: Fix a comment typo. | |
3374 | ||
3375 | 2005-01-21 Giovanni Bajo <giovannibajo@gcc.gnu.org> | |
3376 | ||
3377 | PR c++/19208 | |
3378 | * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr | |
3379 | at least once. | |
3380 | (tsubst): Use fold_decl_constant_value in place of a bare call to | |
3381 | integral_constant_value. | |
3382 | ||
3383 | 2005-01-20 Kazu Hirata <kazu@cs.umass.edu> | |
3384 | ||
3385 | * typeck.c (more_qualified_p): Remove. | |
3386 | * cp-tree.h: Remove the corresponding prototype. | |
3387 | ||
3388 | 2005-01-19 Matt Austern <austern@apple.com> | |
3389 | ||
3390 | * typeck.c (comptypes): Handle return code from objc_comptypes | |
3391 | correctly. | |
3392 | ||
3393 | 2005-01-19 Kazu Hirata <kazu@cs.umass.edu> | |
3394 | ||
3395 | * cp-tree.h, name-lookup.h: Remove unused prototypes. | |
3396 | ||
3397 | 2005-01-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> | |
3398 | ||
3399 | PR c++/19375 | |
3400 | * semantics.c (finish_id_expression): Disable access checking for | |
3401 | already lookuped FIELD_DECL. | |
3402 | ||
3403 | 2005-01-18 Kazu Hirata <kazu@cs.umass.edu> | |
3404 | ||
3405 | * decl.c (delete_block): Remove. | |
3406 | * cp-tree.h: Remove the corresponding prototype. | |
3407 | ||
3408 | * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data, | |
3409 | walk_vtables_r, walk_vtables, walk_globals_r, walk_globals): | |
3410 | Remove. | |
3411 | * cp-tree.h: Remove the corresponding prototypes. | |
3412 | ||
3413 | * tree.c (count_functions, bound_pmf_p, cp_is_overload_p, | |
3414 | cp_update_decl_after_saving, name_p): Remove. | |
3415 | * cp-tree.h: Remove the corresponding prototypes. | |
3416 | ||
3417 | 2005-01-18 Andrew Pinski <pinskia@physics.uc.edu> | |
3418 | ||
3419 | PR c/19472 | |
3420 | * semantics.c (finish_asm_stmt): Strip nops off | |
3421 | input memory operands. | |
3422 | ||
3423 | 2005-01-18 Kazu Hirata <kazu@cs.umass.edu> | |
3424 | ||
3425 | * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c, | |
3426 | typeck2.c: Update copyright. | |
3427 | ||
3428 | 2005-01-16 Kazu Hirata <kazu@cs.umass.edu> | |
3429 | ||
3430 | * class.c (get_enclosing_class): Remove. | |
3431 | * cp-tree.h: Remove the corresponding prototypes. | |
3432 | ||
3433 | * cvt.c (convert_lvalue): Remove. | |
3434 | * cp-tree.h: Remove the corresponding prototype. | |
3435 | ||
3436 | * pt.c (tinst_for_decl): Remove. | |
3437 | * cp-tree.h: Remove the corresponding prototypes. | |
3438 | ||
3439 | * tree.c (hash_chainon): Remove. | |
3440 | * cp-tree.h: Remove the corresponding prototypes. | |
3441 | ||
3442 | 2005-01-15 Jakub Jelinek <jakub@redhat.com> | |
3443 | ||
3444 | PR c++/19263 | |
3445 | * typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy | |
3446 | of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified. | |
3447 | ||
3448 | 2005-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
3449 | ||
3450 | * Make-lang.in (cp-warn): Don't append $(WERROR). | |
3451 | ||
3452 | 2005-01-10 Kazu Hirata <kazu@cs.umass.edu> | |
3453 | ||
3454 | * cp-tree.h: Fix a comment typo. | |
3455 | ||
3456 | 2005-01-07 Nathan Sidwell <nathan@codesourcery.com> | |
3457 | ||
3458 | PR c++/19298 | |
3459 | * pt.c (tsubst_qualified_id): Call convert_from_reference. | |
3460 | ||
3461 | 2005-01-06 Mark Mitchell <mark@codesourcery.com> | |
3462 | ||
3463 | PR c++/19244 | |
3464 | * class.c (add_implicitly_declared_members): Remove dead code. | |
3465 | * decl.c (grokfndecl): Add sfk parameter. Use it do set | |
3466 | DECL_CONSTRUCTOR_P. | |
3467 | (grokdeclarator): Adjust calls to grokfndecl. | |
3468 | * method.c (implicitly_declare_fn): Improve documentation. | |
3469 | * parser.c (cp_parser_direct_declarator): Do not consider a | |
3470 | function to be a constructor if the containing class was | |
3471 | originally anonymous. | |
3472 | ||
3473 | 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> | |
3474 | ||
3475 | PR c++/17154 | |
3476 | * search.c (lookup_field_1): Handle using declaration in | |
3477 | class template partial specialization. | |
3478 | ||
3479 | 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> | |
3480 | ||
3481 | PR c++/19258 | |
3482 | * pt.c (push_access_scope): Handle friend defined in class. | |
3483 | (pop_access_scope): Likewise. | |
3484 | ||
3485 | 2005-01-06 Nathan Sidwell <nathan@codesourcery.com> | |
3486 | ||
3487 | PR c++/19270 | |
3488 | * pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately. | |
3489 | (tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete | |
3490 | array-new handling code. Use build_x_binary_op. | |
3491 | ||
3492 | 2005-01-05 Nathan Sidwell <nathan@codesourcery.com> | |
3493 | ||
3494 | PR c++/19030 | |
3495 | * cp-tree.h (start_decl): Take pointer to pushed scope, not bool. | |
3496 | * name-lookup.h (push_scope): Return pushed scope, not flag. | |
3497 | * name-lookup.c (push_scope): Return scope that should be popped, | |
3498 | not a flag. | |
3499 | * decl.c (start_decl): Adjust. | |
3500 | (grokfndecl): Adjust scope push and pop. | |
3501 | * decl2.c (check_classfn): Likewise. | |
3502 | * parser.c (cp_parser_condition, cp_parser_conversion_function_id, | |
3503 | cp_parser_init_declarator, cp_parser_direct_declarator, | |
3504 | cp_parser_class_specifier, cp_parser_class_head, | |
3505 | cp_parser_lookup_name, | |
3506 | cp_parser_constructor_declarator_p): Likewise. | |
3507 | * pt.c (instantiate_class_template, | |
3508 | resolve_typename_type): Likewise. | |
3509 | ||
3510 | 2005-01-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de> | |
3511 | ||
3512 | PR c++/14136 | |
3513 | * parser.c (cp_parser_unqualified_id): Do not issue error message | |
3514 | for typedef-name as destructor declarator when performing an | |
3515 | uncommitted tentative parse. | |
3516 | ||
3517 | 2005-01-01 Steven Bosscher <stevenb@suse.de> | |
3518 | ||
3519 | PR middle-end/17544 | |
3520 | * decl.c (finish_function): Fix comment. Annotate the compiler | |
3521 | generated return with the current file name and line 0. |