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