OSDN Git Service

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