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