OSDN Git Service

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