OSDN Git Service

2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
2
3         PR c++/53524
4         * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
5         to control enumeral mismatch in conditional expression too.
6
7 2012-06-01  Jason Merrill  <jason@redhat.com>
8
9         PR c++/52973
10         * parser.c (cp_parser_class_head): Apply attributes here.
11         * semantics.c (begin_class_definition): Not here.
12         * cp-tree.h: Adjust.
13
14         PR c++/52725
15         * parser.c (cp_parser_binary_expression): Bail early if we're parsing
16         tentatively and the LHS has a parse error.
17
18 2012-06-01  Jason Merrill  <jason@redhat.com>
19
20         PR c++/53137
21         * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
22         (instantiate_decl): Don't push_to_top_level for local class methods.
23         (instantiate_class_template_1): Or for local classes.
24
25         PR c++/53484
26         * pt.c (do_auto_deduction): Don't try to deduce from a
27         type-dependent initializer.
28
29 2012-05-31  Jason Merrill  <jason@redhat.com>
30
31         PR c++/53500
32         PR c++/52905
33         * call.c (joust): Handle comparing list and non-list ctors.
34
35 2012-05-30  Jason Merrill  <jason@redhat.com>
36
37         PR c++/53356
38         * tree.c (stabilize_init): Side effects make the init unstable.
39
40 2012-05-30  Jason Merrill  <jason@redhat.com>
41
42         PR c++/53220
43         * call.c (convert_like_real) [ck_list]: Take array address directly.
44         * typeck.c (decay_conversion): Reject decay of an array compound
45         literal.
46
47 2012-05-29  Paolo Carlini  <paolo.carlini@oracle.com>
48
49         PR c++/53491
50         * tree.c (stabilize_expr): Handle exp of void type.
51
52 2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
53
54         PR c++/53503
55         * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
56
57 2012-05-15  Alexandre Oliva  <aoliva@redhat.com>
58
59         PR c++/53209
60         * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
61
62 2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
63
64         PR c++/53301
65         * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
66         instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
67
68 2012-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
69
70         PR c++/53186
71         * call.c (build_over_call): Handle final member functions
72         and class types.
73         (build_new_method_call_1): Do not handle here.
74
75 2012-04-17  Paolo Carlini  <paolo.carlini@oracle.com>
76
77         PR c++/53003
78         * parser.c (cp_parser_member_declaration): Check that
79         initializer_token_start is non null before dereferencing it.
80
81 2012-04-16  Jason Merrill  <jason@redhat.com>
82
83         PR c++/38543
84         * pt.c (determine_specialization): Instead of comparing the number
85         of parms, check that tsubst gives the right answer.
86
87         PR c++/50830
88         * pt.c (convert_template_argument): Handle template template
89         argument packs.
90
91         PR c++/50303
92         * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
93         template parameters.
94
95 2012-04-15  Jason Merrill  <jason@redhat.com>
96
97         PR c++/52292
98         PR c++/52380
99         * pt.c (coerce_template_parms): Even if we aren't converting we
100         want to expand argument packs.
101
102 2012-04-15  Fabien Chêne  <fabien@gcc.gnu.org>
103
104         PR c++/52465
105         * parser.c (cp_parser_class_name): Call strip_using_decl and
106         return the target decl.
107         * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
108         to be stripped is NULL_TREE.
109         (qualify_lookup): Call strip_using_decl and perform some checks on
110         the target decl.
111
112 2012-04-13  Jason Merrill  <jason@redhat.com>
113
114         PR c++/52824
115         * pt.c (any_pack_expanson_args_p): New.
116         (coerce_template_parms): Use it.
117
118 2012-04-11  Jason Merrill  <jason@redhat.com>
119
120         PR c++/52906
121         * decl.c (check_tag_decl): Don't complain about attributes if we
122         don't even have a type.
123
124 2012-04-05  Jason Merrill  <jason@redhat.com>
125
126         PR c++/52596
127         * tree.c (lvalue_kind): Treat a deferred access control SCOPE_REF
128         as an lvalue.
129
130 2012-04-03  Jason Merrill  <jason@redhat.com>
131
132         PR c++/52796
133         * pt.c (tsubst_initializer_list): A pack expansion with no elements
134         means value-initialization.
135
136 2012-03-29  Meador Inge  <meadori@codesourcery.com>
137
138         PR c++/52672
139         * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
140         stripped child trees that are not pointer types.
141
142 2012-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
143
144         PR c++/52718
145         * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
146         warn for a zero as null pointer constant default argument.
147
148 2012-03-29  Jason Merrill  <jason@redhat.com>
149
150         PR c++/52685
151         * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
152
153 2012-03-29  Jakub Jelinek  <jakub@redhat.com>
154
155         PR c++/52759
156         * decl.c (start_decl): Don't call maybe_apply_pragma_weak
157         if processing_template_decl.
158
159 2012-03-29  Jason Merrill  <jason@redhat.com>
160
161         PR c++/52743
162         * call.c (compare_ics): Handle ck_aggr like ck_list.
163
164 2012-03-28  Jason Merrill  <jason@redhat.com>
165
166         PR c++/52746
167         * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
168         we didn't get an explicit scope.
169         * pt.c (tsubst_baselink): Likewise.
170
171 2012-03-22  Paolo Carlini  <paolo.carlini@oracle.com>
172
173         PR c++/52487
174         * class.c (check_field_decls): Call literal_type_p only
175         on complete types.
176
177 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
178
179         PR c++/52671
180         * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
181         on CLASS_TYPE_P types.
182
183 2012-03-22  Jason Merrill  <jason@redhat.com>
184
185         PR c++/52582
186         * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
187
188 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
189
190         Backported from mainline
191         2012-03-14  Jakub Jelinek  <jakub@redhat.com>
192
193         PR c++/52521
194         * parser.c (lookup_literal_operator): Return fn only if
195         processed all arguments from args vector and argtypes is
196         void_list_node.
197
198 2012-03-22  Release Manager
199
200         * GCC 4.7.0 released.
201
202 2012-03-20  Jason Merrill  <jason@redhat.com>
203
204         * mangle.c (write_type): Handle 'auto'.
205         * init.c (build_new): Don't do auto deduction where it might
206         affect template mangling.
207
208 2012-03-07  Jason Merrill  <jason@redhat.com>
209
210         PR c++/52521
211         * mangle.c (write_literal_operator_name): The length comes after the
212         operator prefix.
213
214 2012-02-29  Jason Merrill  <jason@redhat.com>
215
216         PR c++/51930
217         * decl.c (check_tag_decl): Move warning for misplaced attributes here.
218         (shadow_tag): From here.
219         * parser.c (cp_parser_explicit_instantiation): Don't warn here.
220
221 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
222
223         PR c++/52312
224         * typeck.c (check_literal_operator_args): Initialize *long_double_p
225         and *long_long_unsigned_p even if processing_template_decl.
226
227 2012-02-16  Jason Merrill  <jason@redhat.com>
228
229         PR c++/52248
230         * decl.c (define_label): Use timevar_cond_start/stop.
231
232 2012-02-16  Fabien Chêne  <fabien@gcc.gnu.org>
233
234         PR c++/52126
235         * decl.c (xref_basetypes): call dependent_scope_p instead of
236         dependent_type_p.
237
238 2012-02-16  Jason Merrill  <jason@redhat.com>
239
240         PR c++/51415
241         * error.c (dump_expr): Handle lambda closures specifically.
242
243 2012-02-14  Jason Merrill  <jason@redhat.com>
244
245         * parser.c (cp_parser_explicit_instantiation): Give a warning
246         for ignored attributes on explicit class instantiation.
247
248 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
249
250         PR c++/52247
251         * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
252         lookup_label on label's name and set TREE_USED.
253
254 2012-02-14  Jason Merrill  <jason@redhat.com>
255
256         PR c++/39055
257         * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
258
259 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
260
261         PR c/52181
262         * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
263         newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
264
265 2012-02-07  Jason Merrill  <jason@redhat.com>
266
267         PR c++/51675
268         * semantics.c (cx_check_missing_mem_inits): Handle unions.
269         Fix constexpr default constructor logic.
270
271         PR c++/52035
272         * pt.c (tsubst): Strip uninstantiated typedef.
273
274 2012-02-06  Jason Merrill  <jason@redhat.com>
275
276         PR c++/52088
277         * cvt.c (build_expr_type_conversion): Check for template conversion.
278
279 2012-01-31  Jason Merrill  <jason@redhat.com>
280
281         PR c++/52043
282         * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
283         * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
284         (tsubst_pack_expansion): Check it.
285
286 2012-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
287
288         PR c++/51327
289         * class.c (explain_non_literal_class): Correctly handle implicitly
290         deleted constructors.
291
292 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
293
294         PR c++/51852
295         * pt.c (tsubst_pack_expansion): Delete and restore
296         local_specialization whenever need_local_specialization, not just
297         when saved_local_specializations is non-NULL.
298
299 2012-01-26  Paolo Carlini  <paolo.carlini@oracle.com>
300
301         PR c++/51370
302         * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
303         as TREE_OPERAND (t, 1).
304
305 2012-01-24  Jason Merrill  <jason@redhat.com>
306
307         PR c++/51917
308         * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
309
310         PR c++/51973
311         * tree.c (called_fns_equal): Check template args.
312         (cp_tree_equal): Call it.
313
314 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
315             Patrick Marlier  <patrick.marlier@gmail.com>
316
317         PR c++/51928
318         * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
319         thunk for set_one_vmethod_tm_attributes.
320
321 2012-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
322
323         PR c++/51223
324         * call.c (build_over_call): Check for error_mark_node as
325         TREE_VALUE when default arguments are processed.
326
327 2012-01-23  Jason Merrill  <jason@redhat.com>
328
329         PR c++/51930
330         * decl2.c (determine_visibility): Check for visibility attribute
331         on template specialization.
332
333 2012-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
334
335         PR c++/51398
336         * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
337
338 2012-01-23  Jason Merrill  <jason@redhat.com>
339
340         PR c++/51925
341         * class.c (add_method): Set OVL_USED for using-decls.
342         * tree.c (ovl_scope): New.
343         * cp-tree.h: Declare it.
344         * parser.c (cp_parser_template_name): Use it.
345         * semantics.c (baselink_for_fns): Likewise.
346         * name-lookup.c (set_inherited_value_binding_p): Likewise.
347
348 2012-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
349
350         PR c++/51402
351         * pt.c (lookup_template_class_1): Check context returned by
352         tsubst for error_mark_node.
353
354 2012-01-19  Kai Tietz  <ktietz@redhat.com>
355
356         PR c++/51344
357         * decl2.c (save_template_attributes): Use merge_attributes
358         instead of chaining up via TREE_CHAIN.
359
360 2012-01-19  Jason Merrill  <jason@redhat.com>
361
362         PR c++/51889
363         * class.c (finish_struct): Call add_method here for function usings.
364         * semantics.c (finish_member_declaration): Not here.
365
366 2012-01-18  Paolo Carlini  <paolo.carlini@oracle.com>
367
368         PR c++/51225
369         * typeck2.c (store_init_value): Within a template guard
370         cxx_constant_value with require_potential_constant_expression.
371         * pt.c (convert_nontype_argument): Likewise.
372
373 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
374
375         PR c++/51854
376         * mangle.c (write_template_arg_literal): Handle complex.
377
378 2012-01-16  Jason Merrill  <jason@redhat.com>
379
380         PR c++/51827
381         * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
382
383         PR c++/51868
384         * typeck.c (build_static_cast_1): Handle bit-fields properly.
385
386 2012-01-13  Ian Lance Taylor  <iant@google.com>
387
388         PR c++/50012
389         * typeck.c (enum_cast_to_int): New static function.
390         (cp_build_binary_op): When handling warn_sign_compare, don't test
391         for TREE_NO_WARNING.  Do call enum_cast_to_int.
392         * call.c (avoid_sign_compare_warnings): Remove static function.
393         (build_new_op_1): Don't call avoid_sign_compare_warnings.
394
395 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
396
397         * decl2.c: Do not include tree-mudflap.h
398         * semantics.c: Likewise.
399
400 2012-01-13  Jason Merrill  <jason@redhat.com>
401
402         PR c++/20681
403         * semantics.c (finish_break_stmt): Avoid adding an unreachable
404         BREAK_STMT.
405
406         PR c++/51813
407         * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
408         when reducing the visibility.
409
410         PR c++/51620
411         * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
412
413 2012-01-12  Jason Merrill  <jason@redhat.com>
414
415         PR c++/51714
416         * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
417         value-dependent.
418
419 2012-01-13  Dodji Seketeli  <dodji@redhat.com>
420
421         PR c++/51633
422         * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
423         Set the pointer to the last block of the constructor to the
424         current statement.
425         (build_constexpr_constructor_member_initializers): Get
426         build_data_member_initialization a chance to deal with more
427         statements before we choke.
428
429 2012-01-12  Jason Merrill  <jason@redhat.com>
430
431         PR c++/48051
432         * mangle.c (write_expression): Mangle BASELINK scope if
433         BASELINK_QUALIFIED_P.
434         * search.c (adjust_result_of_qualified_name_lookup): Set
435         BASELINK_QUALIFIED_P.
436         * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
437         * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
438         adjust_result_of_qualified_name_lookup for non-qualified names.
439
440         PR c++/51403
441         * pt.c (unify): Handle error_mark_node.
442
443 2012-01-11  Jason Merrill  <jason@redhat.com>
444
445         PR c++/51565
446         * call.c (standard_conversion): For ptrmemfuncs, compare the
447         static_fn_types.
448
449         PR c++/51818
450         * mangle.c (find_substitution): A type is only a substitution
451         match if we're looking for a type.
452         (write_nested_name): Use decl_mangling_context.
453
454         * decl.c (decls_match): Assert that the arguments are decls.
455
456         PR c++/51613
457         * pt.c (resolve_overloaded_unification): Compare types with
458         same_type_p, not decls_match.
459
460 2012-01-10  Jason Merrill  <jason@redhat.com>
461
462         PR c++/51614
463         * class.c (build_base_path): Diagnose ambiguous base.
464
465         PR c++/51433
466         * semantics.c (cxx_eval_call_expression): Always retry previously
467         non-constant expressions.
468
469 2012-01-06  Jason Merrill  <jason@redhat.com>
470
471         DR 686
472         PR c++/47450
473         * parser.c (cp_parser_new_expression): Set
474         type_definition_forbidden_message.
475
476         PR c++/6057
477         PR c++/48051
478         PR c++/50855
479         PR c++/51322
480         * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
481         THROW_EXPR, CONSTRUCTOR, OVERLOAD.  Fix PREINCREMENT_EXPR and
482         PREDECREMENT_EXPR.
483         (write_template_arg): Fix mangling of class-scope functions and
484         argument packs.
485         (mangle_decl): Update suggested -fabi-version argument.
486         * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
487         DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
488         * tree.c (dependent_name): No longer static.
489         * cp-tree.h: Declare it.
490         * pt.c (unify): Defer handling of unconverted functions.
491
492         * mangle.c (mangle_decl): Don't generate mangling aliases
493         for maybe-in-charge [cd]tors.
494
495         * error.c (dump_expr): Print type of CONSTRUCTOR.
496
497 2012-01-05  Dodji Seketeli  <dodji@redhat.com>
498
499         PR c++/51541
500         * parser.c (cp_parser_alias_declaration): Get out early upon
501         errors in the identifier or the attributes.
502
503 2012-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
504
505         PR c++/51064
506         * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
507         the tree returned by build_x_binary_op.
508
509 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
510
511         PR c++/51738
512         * parser.c (cp_parser_postfix_open_square_expression): Handle
513         postfix-expression [ braced-init-list ].
514
515 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
516
517         PR c++/29273
518         * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
519         call decay_conversion on v.
520
521 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
522
523         PR c++/15867
524         * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
525         declaration followed by specialization.
526
527 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
528
529         PR c++/51669
530         * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
531         on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
532
533 2012-01-02  Jason Merrill  <jason@redhat.com>
534
535         DR 1359
536         PR c++/51675
537         * method.c (walk_field_subobs): Don't check for uninitialized
538         fields in a union.
539         (synthesized_method_walk): Check here.
540
541         DR 325
542         PR c++/51666
543         * parser.c (cp_parser_cache_defarg): Split out...
544         (cp_parser_parameter_declaration): ...from here.
545         (cp_parser_save_nsdmi): Use it.
546         (cp_parser_cache_group): Remove CPP_COMMA support.
547
548 2012-01-02  Dodji Seketeli  <dodji@redhat.com>
549
550         PR c++/51462
551         * semantics.c (cx_check_missing_mem_inits): Don't assert in case
552         of error.
553
554 2012-01-02  Paolo Carlini  <paolo.carlini@oracle.com>
555
556         PR c++/20140
557         * typeck2.c (digest_init_r): Use copy_init when initializing
558         an array of chars.
559
560 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
561
562         PR c++/16603
563         * decl.c (build_enumerator): Don't call perform_integral_promotions
564         on the value.
565
566 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
567
568         PR c++/51379
569         * typeck.c (build_reinterpret_cast_1): Implement resolution of
570         DR 799.
571
572 2012-01-01  Fabien Chêne  <fabien@gcc.gnu.org>
573
574         * parser.c (cp_parser_using_declaration): Add a warning about
575         deprecated access declarations when no errors were encountered
576         while parsing the access declaration. Save the first token in
577         order to emit the warning at the right place.
578 \f
579 Copyright (C) 2012 Free Software Foundation, Inc.
580
581 Copying and distribution of this file, with or without modification,
582 are permitted in any medium without royalty provided the copyright
583 notice and this notice are preserved.