OSDN Git Service

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