OSDN Git Service

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