OSDN Git Service

* parser.c (cp_parser_class_specifier): Set class location to that
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2010-04-06  Taras Glek  <taras@mozilla.com>
2             Jason Merrill  <jason@redhat.com>
3
4         * parser.c (cp_parser_class_specifier): Set class location to that
5         of IDENTIFIER_NODE instead of '{' when possible.
6         * semantics.c (begin_class_definition): Do not overide locations
7         with less precise ones.
8
9 2010-04-06  Jason Merrill  <jason@redhat.com>
10
11         PR c++/43648
12         * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
13
14         PR c++/43621
15         * pt.c (maybe_update_decl_type): Check the return value from
16         push_scope.
17
18 2010-04-01  Jason Merrill  <jason@redhat.com>
19
20         * decl.c (next_initializable_field): No longer static.
21         * cp-tree.h: Declare it.
22         * call.c (build_aggr_conv): Fail if there are more initializers
23         than initializable fields.
24
25         * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
26         instead of void_zero_node.
27
28 2010-03-31  Dodji Seketeli  <dodji@redhat.com>
29
30         PR c++/43558
31         * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
32         * pt.c (end_template_parm_list): Store sibling template parms of
33         each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
34         (push_template_decl_real): Don't store the containing template decl
35         into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
36         * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
37         of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
38         Simplify the logic.
39
40 2010-03-30  Jason Merrill  <jason@redhat.com>
41
42         PR c++/43076
43         * pt.c (push_template_decl_real): Deal better with running out of
44         scopes before running out of template parms.
45
46         PR c++/41185
47         PR c++/41786
48         * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
49         function parameter context.  Don't print an error if parsing
50         tentatively.
51
52         PR c++/43559
53         * pt.c (more_specialized_fn): Don't control cv-qualifier check
54         with same_type_p.
55
56 2010-03-26  Jason Merrill  <jason@redhat.com>
57
58         PR c++/43509
59         * parser.c (cp_parser_qualifying_entity): Do accept enum names in
60         c++0x mode, but not other type-names.
61
62 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
63
64         PR c++/43327
65         * pt.c (add_to_template_args): Support NULL ARGS;
66         (most_specialized_class): call coerce_template_parms on
67         template arguments passed to get_class_bindings. Use
68         add_to_template_args.
69         (unify): Handle VAR_DECLs.
70
71 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
72
73         * cp-tree.h (get_template_parms_at_level): Change unsigned parm
74         into int.
75         * pt.c (get_template_parms_at_level): Adjust.
76
77 2010-03-25  Dodji Seketeli  <dodji@redhat.com>
78
79         PR c++/43206
80         * cp-tree.h (get_template_parms_at_level): Declare ...
81         * pt.c (get_template_parms_at_level): ... new function.
82         * typeck.c (get_template_parms_of_dependent_type): If a template
83         type parm's DECL_CONTEXT isn't yet set, get its siblings from
84         current_template_parms. Use get_template_parms_at_level. Remove
85         useless test.
86         (incompatible_dependent_types_p): If we get empty parms from just one
87         of the template type parms we are comparing then the template parms are
88         incompatible.
89
90 2010-03-24  Jason Merrill  <jason@redhat.com>
91
92         PR c++/43502
93         * parser.c (make_declarator): Initialize id_loc.
94         (cp_parser_lambda_declarator_opt): And set it.
95
96 2010-03-23  Jason Merrill  <jason@redhat.com>
97
98         Make lambda conversion op and op() non-static.
99         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
100         Also add the thunk function returned by the conversion op.
101         Mark the conversion deleted if the op() is variadic.
102         * decl2.c (mark_used): Give helpful message about deleted conversion.
103         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
104         * semantics.c (finish_this_expr): Adjust.
105         * mangle.c (write_closure_type_name): Adjust.
106         * decl.c (grok_op_properties): Don't allow it.
107         * call.c (build_user_type_conversion_1): No static conversion ops.
108         (build_op_call): Or op().
109
110         * decl2.c (change_return_type): Fix 'this' quals.
111
112 2010-03-22  Jason Merrill  <jason@redhat.com>
113
114         PR c++/43333
115         * tree.c (pod_type_p): Use old meaning in C++98 mode.
116
117         PR c++/43281
118         * pt.c (contains_auto_r): New fn.
119         (do_auto_deduction): Use it.
120         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
121
122 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
123
124         PR c++/43081:
125         * decl2.c (grokfield): Handle invalid initializers for member
126         functions.
127
128 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
129
130         PR c++/43375
131         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
132         is NULL.
133         * decl2.c (vague_linkage_p): Likewise.
134
135 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
136
137         PR c++/43418
138         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
139         false, in the cp_parser_expression_statement call.
140
141 2010-03-05  Jason Merrill  <jason@redhat.com>
142
143         * mangle.c (mangle_decl): Give name collision error even without
144         ASM_OUTPUT_DEF.
145
146 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
147
148         * pt.c (process_partial_specialization): Use error_n instead of
149         error.
150
151 2010-03-03  Jason Merrill  <jason@redhat.com>
152
153         PR c++/12909
154         * mangle.c (mangle_decl): Handle VAR_DECL, too.
155
156 2010-03-03  Jason Merrill  <jason@redhat.com>
157
158         PR c++/12909
159         * mangle.c (mangle_decl): Handle VAR_DECL, too.
160
161 2010-03-03  Jason Merrill  <jason@redhat.com>
162
163         PR c++/12909
164         * mangle.c: Include cgraph.h.
165         (mangle_decl): If the mangled name will change in a later
166         ABI version, make the later mangled name an alias.
167         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
168         * Make-lang.in (mangle.o): Depend on cgraph.h.
169         * method.c (make_alias_for): Handle VAR_DECL, too.
170         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
171         * tree.c (no_linkage_check): Adjust.
172         * decl.c (maybe_commonize_var): Adjust.
173         * cp-tree.h: Adjust.
174
175 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
176
177         * pt.c (redeclare_class_template): Use error_n and inform_n.
178
179 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
180
181         PR c++/42748
182         * cp-tree.h (push_tinst_level): Declare.
183         (pop_tinst_level): Likewise.
184         * pt.c (push_tinst_level): Give it external linkage.
185         (pop_tinst_level): Likewise.
186         * mangle.c (mangle_decl_string): Set the source location to that
187         of the decl while mangling.
188
189 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
190
191         PR c++/42054
192         * pt.c (redeclare_class_template): Return false if there are erroneous
193         template parameters.
194
195 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
196
197         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
198         -ftemplate-depth=.
199
200 2010-02-24  Jason Merrill  <jason@redhat.com>
201
202         PR c++/12909
203         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
204
205         * class.c (layout_class_type): Don't give -Wabi warning for a bug
206         in a previous ABI version.
207
208 2010-02-23  Jason Merrill  <jason@redhat.com>
209
210         PR c++/43143
211         * typeck2.c (digest_init_r): Accept value init of array.
212
213 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
214
215         PR c++/43126
216         * typeck.c (convert_arguments): Update error message.
217
218 2010-02-22  Mike Stump  <mikestump@comcast.net>
219
220         PR c++/43125
221         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
222
223 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
224
225         PR c++/23510
226         * error.c (print_instantiation_partial_context_line): New.
227         (print_instantiation_partial_context): Print at most 12 contexts,
228         skip the rest with a message.
229
230 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
231
232         PR c++/42824
233         * pt.c (lookup_template_class): Better support of specialization
234         of member of class template implicit instantiation.
235
236 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
237
238         PR c++/35669
239         * call.c (conversion_null_warnings): Replace -Wconversion with
240         -Wconversion-null.
241         * cvt.c (build_expr_type_conversion): Likewise.
242
243 2010-02-18  Jason Merrill  <jason@redhat.com>
244
245         PR c++/42837
246         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
247
248         PR c++/43108
249         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
250         C build_binary_op.
251         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
252         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
253
254         PR c++/43070
255         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
256
257         PR c++/26261
258         PR c++/43101
259         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
260         (maybe_update_decl_type): New fn.
261         * parser.c (cp_parser_init_declarator): Use it.
262
263         PR c++/43109
264         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
265
266 2010-02-17  Jason Merrill  <jason@redhat.com>
267
268         PR c++/43075
269         * call.c (build_over_call): Don't create zero-sized assignments.
270         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
271         * cp-objcp-common.c (cp_expr_size): Remove.
272         * cp-tree.h: Remove prototype.
273
274         PR c++/43069
275         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
276         decl we looked up doesn't match.
277
278         PR c++/43093
279         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
280         have an INIT_EXPR anymore.
281
282         PR c++/43079
283         * pt.c (convert_nontype_argument): Change assert to test.
284
285 2010-02-16  Jason Merrill  <jason@redhat.com>
286
287         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
288
289         PR c++/43031
290         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
291         VIEW_CONVERT_EXPR for conversions between structural equality types
292         that the back end can't tell are the same.
293
294         PR c++/43036
295         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
296         cv-quals from element here.
297         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
298
299 2010-02-14  Jason Merrill  <jason@redhat.com>
300
301         PR c++/41997
302         * semantics.c (finish_compound_literal): Use
303         cp_apply_type_quals_to_decl when creating a static variable.
304
305 2010-02-12  Jason Merrill  <jason@redhat.com>
306
307         PR c++/43024
308         * name-lookup.h (current_binding_level): Check for null
309         cp_function_chain.
310
311 2010-02-12  Jason Merrill  <jason@redhat.com>
312
313         PR c++/43054
314         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
315
316 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
317
318         PR c++/43033
319         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
320         instead of x.
321
322 2010-02-10  Jason Merrill  <jason@redhat.com>
323
324         PR c++/41896
325         * semantics.c (outer_lambda_capture_p): Revert.
326         (add_capture): Only finish_member_declaration if
327         we're in the lambda class.
328         (register_capture_members): New.
329         * cp-tree.h: Declare it.
330         * parser.c (cp_parser_lambda_expression): Call it.
331
332 2010-02-10  Jason Merrill  <jason@redhat.com>
333
334         PR c++/41896
335         * semantics.c (outer_lambda_capture_p): Use current_function_decl
336         instead of current_class_type.
337
338 2010-02-10  Jason Merrill  <jason@redhat.com>
339
340         PR c++/42983, core issue 906
341         * method.c (defaultable_fn_check): Check virtualness.
342
343 2010-02-10  Jason Merrill  <jason@redhat.com>
344
345         PR c++/43016
346         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
347
348 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
349
350         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
351         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
352         translation.
353         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
354         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
355         (cp_parser_parameter_declaration)
356         (cp_parser_exception_specification_opt)
357         (cp_parser_exception_declaration): Likewise.
358         * pt.c (check_default_tmpl_args): Likewise.
359         * search.c (lookup_field_r): Likewise.
360
361 2010-02-09  Jason Merrill  <jason@redhat.com>
362
363         PR c++/42399
364         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
365
366 2010-02-09  Jason Merrill  <jason@redhat.com>
367
368         PR c++/42370
369         * decl2.c (change_return_type): New fn.
370         * semantics.c (apply_lambda_return_type): Use it.
371         * cp-tree.h: Declare it.
372
373 2010-02-05  Richard Guenther  <rguenther@suse.de>
374
375         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
376         * cp-lang.c: Include gt-cp-cp-lang.h.
377         * config-lang.in (gtfiles): Add cp/cp-lang.c.
378
379 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
380
381         PR c++/42915
382         * typeck.c (get_template_parms_of_dependent_type): Try getting
383         the template parameters fromt the type itself first.
384
385 2010-02-03  Jason Merrill  <jason@redhat.com>
386
387         PR c++/4926
388         PR c++/38600
389         * mangle.c (write_unqualified_id): Split out from write_expression.
390         (write_unqualified_name): Call it.
391         (write_member_name): Likewise.
392         (write_expression): Support TEMPLATE_ID_EXPR.
393         Disambiguate operator names.
394
395         PR c++/12909
396         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
397         -fabi-version=4.
398
399 2010-02-02  Jason Merrill  <jason@redhat.com>
400
401         PR c++/41090
402         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
403         * optimize.c (clone_body): Remap their initializers when making base
404         variants.
405         (maybe_clone_body): Complain if multiple clones aren't safe.
406
407 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
408
409         PR c++/42758
410         PR c++/42634
411         PR c++/42336
412         PR c++/42797
413         PR c++/42880
414         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
415         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
416         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
417         * pt.c (coerce_template_parms, type_unification_real,
418         expand_template_argument_pack, coerce_template_parameter_pack):
419         Set the non default template args count.
420         (current_template_args): Always set non defaulted
421         template args count when compiled with --enable-checking
422         (tsubst_template_args, type_unification_real): Propagate the non
423         defaulted template args count.
424         * error.c (get_non_default_template_args_count): Renamed
425         count_non_default_template_args into this. Don't calculate the
426         non default template argument count anymore. Use the new
427         accessor macros above to get it.
428         (dump_template_argument_list, dump_type, dump_decl,
429         dump_template_parms): Adjust.
430         * parser.c (cp_parser_template_argument_list): Always set defaulted
431         template args count when compiled with --enable-checking.
432
433 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
434
435         * decl.c (redeclaration_error_message): Wrap the return messages into
436         G_() for easy translation.
437
438 2010-01-28  Jason Merrill  <jason@redhat.com>
439
440         PR c++/42880
441         * semantics.c (begin_class_definition): Don't use type_as_string.
442
443 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
444
445         PR c++/42713
446         PR c++/42820
447         * typeck.c (get_template_parms_of_dependent_type): Factorized
448         this out of incompatible_template_type_parms_p
449         (incompatible_dependent_types_p): Renamed
450         incompatible_template_type_parms_p into this. Make it detect
451         two incompatible dependent typedefs too.
452         (structural_comptypes): Use incompatible_dependent_types_p.
453         * pt.c (get_template_info):
454         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
455
456 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
457             Jason Merrill  <jason@redhat.com>
458
459         * mangle.c (write_type): Mangle transparent record as member type.
460         * semantics.c (begin_class_definition): Recognize decimal classes
461         and set TYPE_TRANSPARENT_AGGR.
462
463 2010-01-20  Jason Merrill  <jason@redhat.com>
464
465         PR c++/42338
466         * mangle.c (write_expression): Handle tree codes that have extra
467         arguments in the middle-end.
468
469 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
470
471         PR c++/42038
472         * except.c (expand_start_catch_block): Deal correctly with
473         do_begin_catch returning error_mark_node.
474
475 2010-01-20  Jason Merrill  <jason@redhat.com>
476
477         PR c++/41788
478         * class.c (layout_class_type): Set packed_maybe_necessary for packed
479         non-PODs.
480
481         PR c++/41920
482         * semantics.c (build_lambda_object): Call mark_used on captured
483         variables.
484
485         PR c++/40750
486         * decl.c (grokdeclarator): Clear type_quals for a member function
487         declared using a typedef.  Don't complain about adding cv-quals
488         to a function typedef in C++0x mode.
489
490 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
491
492         * decl.c (create_array_type_for_decl): Remove set but not used
493         variable error_msg.  Remove break stmts after return stmts.
494
495 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
496
497         * error.c (dump_template_parms, count_non_default_template_args):
498         Revert fix of PR c++/42634.
499
500 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
501
502         PR c++/42634
503         * error.c (dump_template_parms): Use innermost template
504         arguments before calling count_non_default_template_args.
505         (count_non_default_template_args): We are being called with
506         template innermost arguments now. There is no need to ensure
507         that again.
508
509 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
510
511         PR c++/42766
512         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
513
514 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
515
516         PR c++/42697
517         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
518
519 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
520
521         PR c++/42697
522         *pt.c (tsubst_decl): Get the arguments of a specialization from
523         the specialization template, not from the most general template.
524
525 2010-01-16  Jason Merrill  <jason@redhat.com>
526
527         PR c++/42761
528         * semantics.c (finish_decltype_type): Within a template, treat
529         unresolved CALL_EXPR as dependent.
530
531 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
532
533         * error.c (dump_template_parms,count_non_default_template_args):
534         Revert changes of PR c++/42634.
535
536 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
537
538         PR middle-end/42674
539         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
540         functions with noreturn attribute.
541
542 2010-01-14  Jason Merrill  <jason@redhat.com>
543
544         PR c++/42701
545         * call.c (build_new_method_call): Don't free the vec here.
546
547         PR c++/42655
548         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
549
550 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
551
552         PR c++/42634
553         * error.c (dump_template_parms): Use innermost template
554         arguments before calling count_non_default_template_args.
555         (count_non_default_template_args): We are being called with
556         template innermost arguments now. There is no need to ensure
557         that again.
558
559 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
560
561         c++/40155
562         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
563         arguments that were previously deduced.
564
565 2010-01-05  Jason Merrill  <jason@redhat.com>
566
567         * pt.c (unify_pack_expansion): Handle deduction from init-list.
568         * call.c (build_over_call): Don't complain about it.
569
570 2010-01-04  Jason Merrill  <jason@redhat.com>
571
572         PR c++/42555
573         * pt.c (tsubst_decl): Don't apply type attributes in place.
574
575         PR c++/42567
576         * semantics.c (describable_type): Remove decltype comment and
577         semantics.
578
579
580 \f
581 Copyright (C) 2010 Free Software Foundation, Inc.
582
583 Copying and distribution of this file, with or without modification,
584 are permitted in any medium without royalty provided the copyright
585 notice and this notice are preserved.