OSDN Git Service

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