]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
configure.ac: Skip C if explicitly selected.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
d4a10d0a
SB
12012-06-29 Steven Bosscher <steven@gcc.gnu.org>
2
3 * Make-lang.in: Remove tree-mudflap.o from CXX_AND_OBJCXX_OBJS.
4
b298aa9b
JM
52012-06-27 Jason Merrill <jason@redhat.com>
6
ae52af05
JM
7 * parser.c (cp_parser_check_for_invalid_template_id): tag_type parm.
8 (cp_parser_simple_type_specifier, cp_parser_class_head): Adjust.
9 (cp_parser_elaborated_type_specifier): Adjust.
10 * decl.c (duplicate_decls): Return error_mark_node on template
11 mismatch.
12
b298aa9b
JM
13 PR c++/53563
14 * parser.c (cp_parser_template_id): Add tag_type parm.
15 (cp_parser_template_name): Likewise.
16 (cp_parser_id_expression, cp_parser_unqualified_id): Adjust.
17 (cp_parser_pseudo_destructor_name, cp_parser_type_name): Adjust.
18 (cp_parser_simple_type_specifier, cp_parser_class_name): Adjust.
19 (cp_parser_elaborated_type_specifier, cp_parser_class_head): Adjust.
20
c523fc89
RR
212012-06-27 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
22
23 PR C++/51033
24 * semantics.c (constexpr_call): Fix typo in comment.
25 (cxx_eval_vec_perm_expr): New.
26 (cxx_eval_constant_expression): Fold VEC_PERM_EXPRs.
27
72e732f8
RG
282012-06-26 Richard Guenther <rguenther@suse.de>
29
30 PR c++/53752
31 * mangle.c (write_array_type): Truncate the number-of-elements
32 result.
33
ec62cbe1
JM
342012-06-25 Jason Merrill <jason@redhat.com>
35
eaccea2a
JM
36 PR c++/53498
37 PR c++/53305
38 * pt.c (tsubst_decl) [PARM_DECL]: Don't recurse into DECL_CHAIN
39 if cp_unevaluated_operand is set.
40 (tsubst_copy) [PARM_DECL]: Don't copy before tsubsting.
41
ec62cbe1
JM
42 PR c++/52988
43 * typeck.c (decay_conversion): Don't discard side-effects from
44 expressions of nullptr_t.
45
4ebc46e9
FW
462012-06-25 Florian Weimer <fweimer@redhat.com>
47
48 * init.c (build_new_1): Warn about (T[N]) for variable N, and
49 reject T[M][N].
50
51 * parser.c (cp_parser_direct_new_declarator): Accept non-constant
52 expressions. Handled now in build_new_1.
53
443679ae
JM
542012-06-25 Jason Merrill <jason@redhat.com>
55
72de8622
JM
56 PR c++/53202
57 * semantics.c (build_data_member_initialization): Always keep
58 initializer for empty base.
59 (cxx_eval_bare_aggregate): Discard it here.
60
443679ae
JM
61 PR c++/53565
62 * pt.c (tsubst_omp_for_iterator): Simplify DECL_EXPR handling.
63 (tsubst_expr) [OMP_FOR]: Here, too.
64
f315d618
JJ
652012-06-25 Jakub Jelinek <jakub@redhat.com>
66
67 PR c++/53594
68 * class.c (check_bases_and_members): Avoid -Wuninitialized
69 diagnostics for non-static const members or references if they
70 use NSDMI.
71
722012-06-16 Ville Voutilainen <ville.voutilainen@gmail.com>
6830e502
VV
73
74 * parser.c (cp_parser_direct_declarator): Move virt-specifier
75 parsing after late-specified return type parsing.
76
420bf978
JM
772012-06-14 Jason Merrill <jason@redhat.com>
78
79 PR c++/53651
80 * name-lookup.c (constructor_name_p): Don't try to look at the
81 name of a DECLTYPE_TYPE.
82
a910399d
LC
832012-06-18 Lawrence Crowl <crowl@google.com>
84
85 * decl2.c (cp_write_global_declarations): Rename use of TV_PHASE_CGRAPH
86 to TV_PHASE_OPT_GEN.
87
d421b10c
SB
882012-06-18 Steven Bosscher <steven@gcc.gnu.org>
89
90 * decl.c (finish_function): Remove code conditional on VMS_TARGET.
91
9e1a8dd1
RR
922012-06-15 Marc Glisse <marc.glisse@inria.fr>
93
94 PR c++/51033
95 * semantics.c (literal_type_p): Handle VECTOR_TYPE.
96 (potential_constant_expression_1): Handle VEC_PERM_EXPR.
97 * parser.c (cp_parser_postfix_expression): Handle RID_BUILTIN_SHUFFLE.
98
fdaf2f48
JM
992012-06-09 Jason Merrill <jason@redhat.com>
100
637f68e8
JM
101 * pt.c (tsubst_expr) [TAG_DEFN]: Instantiate local class.
102 * class.c (finish_struct): Don't add a TAG_DEFN for a lambda.
103 * decl2.c (finish_static_data_member_decl): Avoid redundant error.
104
fdaf2f48
JM
105 PR c++/53599
106 * name-lookup.c (pushtag_1): Add a DECL_EXPR for a local class.
107 * semantics.c (finish_cond): Build a COMPOUND_EXPR.
108 * pt.c (tsubst_expr) [COMPOUND_EXPR]: Handle.
109 [DECL_EXPR]: Don't call cp_finish_decl for an implicit typedef.
110 Don't return the decl.
111
5a20ffcb
RG
1122012-06-11 Richard Guenther <rguenther@suse.de>
113
35981f1f 114 PR c++/53605
5a20ffcb
RG
115 * mangle.c (write_array_type): Use double-ints for array domain
116 arithmetic.
117
0089c3bb 1182012-06-07 Fabien Chêne <fabien@gcc.gnu.org>
cba0366c
FC
119
120 PR c++/51214
121 * cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields):
122 Declare.
123 * class.c (insert_into_classtype_sorted_fields): New.
124 (add_enum_fields_to_record_type): New.
125 (count_fields): Adjust the comment.
126 (add_fields_to_record_type): Likewise.
127 (finish_struct_1): Move the code that inserts the fields for the
128 sorted case, into insert_into_classtype_sorted_fields, and call
129 it.
130 (insert_late_enum_def_into_classtype_sorted_fields): Define.
131 * decl.c (finish_enum_value_list): Call
132 insert_late_enum_def_into_classtype_sorted_fields if a late enum
133 definition is encountered.
134
4b978f96
PC
1352012-06-06 Paolo Carlini <paolo.carlini@oracle.com>
136
137 PR c++/53567
138 * typeck.c (cp_perform_integral_promotions): New, like
139 perform_integral_promotions but also takes a tsubst_flags_t parameter.
140 (pointer_diff): Add tsubst_flags_t parameter.
141 (decay_conversion, cp_default_conversion, cp_build_array_ref,
142 cp_build_binary_op, cp_build_unary_op, build_static_cast_1,
143 build_reinterpret_cast_1, cp_build_modify_expr,
144 convert_for_assignment): Adjust.
145 * optimize.c (build_delete_destructor_body): Adjust.
146 * init.c (expand_virtual_init, expand_default_init, build_new_1,
147 build_new, build_vec_delete_1, build_vec_init, build_delete): Adjust.
148 (construct_virtual_base): Adjust LOOKUP_COMPLAIN -> 0.
149 * class.c (build_base_path): Adjust.
150 * decl.c (compute_array_index_type, finish_destructor_body): Likewise.
151 * method.c (synthesized_method_walk): Adjust flag and complain.
152 * rtti.c (ifnonnull): Add tsubst_flags_t parameter.
153 (build_typeid, build_dynamic_cast_1): Adjust.
154 * except.c (initialize_handler_parm): Likewise.
155 * typeck2.c (process_init_constructor_record): Likewise.
156 * pt.c (tsubst_friend_class): Don't change flags.
157 * semantics.c (finish_goto_stmt, handle_omp_for_class_iterator,
158 finish_static_assert): Likewise.
159 * parser.c (cp_parser_lookup_name): Just pass 0 as flags to
160 lookup_name_real.
161 * call.c (build_op_delete_call): Add tsubst_flags_t parameter.
162 (convert_like_real, convert_arg_to_ellipsis, convert_for_arg_passing):
163 Adjust.
164 (standard_conversion): Adjust LOOKUP_COMPLAIN -> 0.
165 (implicit_conversion): Mask out tf_error with a FIXME.
166 (build_user_type_conversion_1, build_new_op_1, build_over_call): Use
167 complain & tf_error instead of flags & LOOKUP_COMPLAIN.
168 * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
169 build_up_reference, convert_to_reference, cp_convert,
170 cp_convert_and_check, ocp_convert, convert_force): Add tsubst_flags_t
171 parameter.
172 (convert_to_reference, ocp_convert): Use complain & tf_error instead
173 of flags & LOOKUP_COMPLAIN.
174 (convert_force): Adjust LOOKUP_COMPLAIN -> 0.
175 * name-lookup.c (identifier_type_value_1, lookup_qualified_name,
176 lookup_name_real, lookup_function_nonclass, lookup_name,
177 lookup_name_prefer_type): Adjust LOOKUP_COMPLAIN -> 0.
178 * cp-tree.h: Adjust prototypes; remove LOOKUP_COMPLAIN.
179
6f07a821
SB
1802012-06-06 Steven Bosscher <steven@gcc.gnu.org>
181
182 * decl.c: Do not include output.h.
183 (start_decl): Remove code for flag_conserve_space.
184
0089c3bb 1852012-06-06 Fabien Chêne <fabien@gcc.gnu.org>
ce6d2586
RB
186
187 PR c++/52841
188 * parser.c (cp_parser_alias_declaration): Return earlier
189 if an error occured.
190
0e1dd874
PC
1912012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
192
193 PR c++/53524
194 * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
195 to control enumeral mismatch in conditional expression too.
196
c265f413
SA
1972012-06-04 Sterling Augustine <saugustine@google.com>
198
199 * cp-tree.h: Declare decl_as_dwarf_string, lang_decl_dwarf_name.
200 * cp-lang.c (cxx_dwarf_name): Call them.
201
a4b7d13c
SB
2022012-06-04 Steven Bosscher <steven@gcc.gnu.org>
203
204 * semantics.c: Do not include output.h.
205 * decl2.c: Likewise.
206 * friend.c: Likewise.
207 * typeck.c: Likewise.
208 * typeck2.c: Likewise.
209 * Make-lang.in: Fix dependencies.
210
d37c775a
JM
2112012-06-01 Jason Merrill <jason@redhat.com>
212
e3c888eb
JM
213 PR c++/52973
214 * parser.c (cp_parser_class_head): Apply attributes here.
215 * semantics.c (begin_class_definition): Not here.
216 * cp-tree.h: Adjust.
217
ef4b1d6d
JM
218 PR c++/52725
219 * parser.c (cp_parser_binary_expression): Bail early if we're parsing
220 tentatively and the LHS has a parse error.
221
3dfaf1d7
JM
222 PR c++/53137
223 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
224 (instantiate_decl): Don't push_to_top_level for local class methods.
225 (instantiate_class_template_1): Or for local classes.
226
d37c775a
JM
227 PR c++/53484
228 * pt.c (do_auto_deduction): Don't try to deduce from a
229 type-dependent initializer.
230
5714705f
PC
2312012-06-01 Paolo Carlini <paolo.carlini@oracle.com>
232
233 PR c++/26155
234 * name-lookup.c (push_namespace): When error recovery is
235 impossible just error out in duplicate_decls.
236
be7a421e
SB
2372012-05-31 Steven Bosscher <steven@gcc.gnu.org>
238
239 * call.c: Do not include output.h.
240 * class.c: Likewise.
241 * except.c: Likewise.
242 * friend.c: Likewise.
243 * init.c: Likewise.
244 * lex.c: Likewise.
245 * method.c: Likewise.
246 * parser.c: Likewise.
247 * pt.c: Likewise.
248 * rtti.c: Likewise.
249 * search.c: Likewise.
250
4bbbcbf6
JM
2512012-05-30 Jason Merrill <jason@redhat.com>
252
66edf32a
JM
253 PR c++/53356
254 * tree.c (stabilize_init): Handle stabilizing a TARGET_EXPR
255 representing a bitwise copy of a glvalue.
256
989e6706
JM
257 * tree.c (stabilize_expr): Tweak logic.
258
4bbbcbf6
JM
259 PR c++/53356
260 * tree.c (stabilize_init): Side effects make the init unstable.
261
5d497b05
PC
2622012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
263
264 PR c++/53503
265 * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
266
982058cb
PC
2672012-05-26 Paolo Carlini <paolo.carlini@oracle.com>
268
269 PR c++/53491
270 * tree.c (stabilize_expr): Handle exp of void type.
271
1f37c583
JM
2722012-05-26 Jason Merrill <jason@redhat.com>
273
274 PR c++/53220
275 * call.c (convert_like_real) [ck_list]: Take array address directly.
276 * typeck.c (decay_conversion): Reject decay of an array compound
277 literal.
278
6d199d3c
PC
2792012-05-25 Paolo Carlini <paolo.carlini@oracle.com>
280
281 PR c++/32054
282 * parser.c (cp_parser_member_declaration): A storage class is not
283 allowed in a declaration of an anonymous aggregate in a class scope.
284
b7d56bdf
UB
2852012-05-24 Uros Bizjak <ubizjak@gmail.com>
286
287 PR obj-c++/53441
288 * decl.c (grokdeclarator): Check that current_class_type is non-NULL
289 before calling constructor_name_p.
290
c7837f7e
PC
2912012-05-24 Paolo Carlini <paolo.carlini@oracle.com>
292
293 PR c++/32080
294 * parser.c (cp_parser_ctor_initializer_opt_and_function_body,
295 cp_parser_function_body): Add a bool parameter, true when parsing
296 a function-try-block.
297 (cp_parser_function_try_block): Pass true to the above.
298 (cp_parser_function_definition_after_declarator,
299 cp_parser_function_transaction): Adjust.
300
0a9696f0
PC
3012012-05-23 Paolo Carlini <paolo.carlini@oracle.com>
302
303 PR c++/29185
304 * decl2.c (delete_sanity): Extend 'deleting array' warning to
305 any array type.
306
94ccc95d
PC
3072012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
308
309 PR c++/51184
310 * decl.c (grokdeclarator): Diagnose functions returning abstract
311 class types as TYPENAME.
312 * cp-tree.h (ABSTRACT_CLASS_TYPE_P): Add.
313 * except.c (is_admissible_throw_operand_or_catch_parameter): Use it.
314 * pt.c (tsubst): Likewise.
315 * semantics.c (trait_expr_value): Likewise.
316
3172012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
318
319 PR c++/40821
320 * parser.c (cp_parser_attributes_opt): Enforce error checking of
321 unbalanced parentheses in the presence of tentative parsing.
322
70ba90b2
PC
3232012-05-17 Paolo Carlini <paolo.carlini@oracle.com>
324
325 PR c++/39681
326 * parser.c (cp_parser_new_type_id): Early return error_mark_node
327 if the cp_parser_type_specifier_seq call has type_specifier_seq.type
328 error_mark_node; tidy.
329 (cp_parser_new_expression): Always initialize nelts to NULL_TREE to
330 avoid uninitialized warnings.
331 (cp_parser_init_declarator, cp_parser_late_parse_one_default_arg):
332 Call cp_parser_skip_to_end_of_statement if cp_parser_initializer
333 returns error_mark_node.
334
f9eead1f
PC
3352012-05-17 Paolo Carlini <paolo.carlini@oracle.com>
336
337 PR c++/53371
338 * except.c (is_admissible_throw_operand): Rename to
339 is_admissible_throw_operand_or_catch_parameter and handle
340 catch parameter too.
341 (expand_start_catch_block): Use it.
342 (build_throw): Adjust.
343
f330f599
PC
3442012-05-17 Paolo Carlini <paolo.carlini@oracle.com>
345
346 PR c++/44516
347 * typeck.c (build_x_array_ref, build_x_conditional_expr,
348 build_x_compound_expr, build_x_modify_expr): Add location_t parameter.
349 (finish_class_member_access_expr, build_x_indirect_ref,
350 build_x_binary_op, build_x_compound_expr_from_list,
351 build_x_compound_expr_from_vec): Adjust callers.
352 * tree.c (build_min_nt_loc): New.
353 (build_min_nt): Remove.
354 * typeck2.c (build_x_arrow): Adjust callers.
355 * pt.c (tsubst_qualified_id, tsubst_omp_for_iterator,
356 tsubst_copy_and_build): Likewise.
357 * semantics.c (finish_mem_initializers, handle_omp_for_class_iterator,
358 finish_omp_atomic): Likewise.
359 * decl2.c (grok_array_decl, build_anon_union_vars): Adjust.
360 * parser.c (cp_parser_question_colon_clause,
361 cp_parser_assignment_expression, cp_parser_expression,
362 cp_parser_template_id, cp_parser_omp_for_loop): Likewise.
363 * cp-tree.h: Update.
364
0b2c4be5
DS
3652012-05-16 Dodji Seketeli <dodji@redhat.com>
366
367 PR preprocessor/7263
368 * cp-tree.h (enum cp_decl_spec): Add new enumerators to cover all
369 the possible declarator specifiers so far.
370 (struct cp_decl_specifier_seq::locations): Declare new member.
371 (cp_decl_specifier_seq::{specs, type_location}): Remove.
372 (decl_spec_seq_has_spec_p): Declare new function.
373 * parser.c (cp_parser_check_decl_spec): Remove.
374 (set_and_check_decl_spec_loc): Define new static function.
375 (decl_spec_seq_has_spec_p): Define new public function.
376 (cp_parser_decl_specifier_seq, cp_parser_function_specifier_opt)
377 (cp_parser_type_specifier, cp_parser_simple_type_specifier)
378 (cp_parser_set_storage_class, cp_parser_set_decl_spec_type)
379 (cp_parser_alias_declaration): Set the locations for each
380 declspec, using set_and_check_decl_spec_loc.
381 (cp_parser_explicit_instantiation, cp_parser_init_declarator)
382 (cp_parser_member_declaration, cp_parser_init_declarator): Use the
383 new declspec location for specifiers. Use the new
384 decl_spec_seq_has_spec_p.
385 (cp_parser_type_specifier_seq): Use the new
386 set_and_check_decl_spec_loc. Stop using
387 cp_parser_check_decl_spec. Use the new decl_spec_seq_has_spec_p.
388 (, cp_parser_init_declarator): Use the new
389 set_and_check_decl_spec_loc.
390 (cp_parser_single_declaration, cp_parser_friend_p)
391 (cp_parser_objc_class_ivars, cp_parser_objc_struct_declaration):
392 Use the new decl_spec_seq_has_spec_p.
393 * decl.c (check_tag_decl): Use new decl_spec_seq_has_spec_p. Use
394 the more precise ds_redefined_builtin_type_spec location for
395 diagnostics about re-declaring C++ built-in types.
396 (start_decl, grokvardecl, grokdeclarator): Use the new
397 decl_spec_seq_has_spec_p.
398
a1bde5af
PC
3992012-05-15 Paolo Carlini <paolo.carlini@oracle.com>
400
d02924ef 401 PR c++/11856
a1bde5af
PC
402 * pt.c (tsubst_copy_and_build): Increase / decrease
403 c_inhibit_evaluation_warnings around build_x_binary_op call.
404
66b1156a
PC
4052012-05-12 Paolo Carlini <paolo.carlini@oracle.com>
406
407 * cp-tree.h (TYPE_PTRMEM_P): Rename to TYPE_PTRDATAMEM_P.
408 (TYPE_PTR_TO_MEMBER_P): Rename to TYPE_PTRMEM_P.
409 (TYPE_PTR_OR_PTRMEM_P): Add.
410 * typeck.c (composite_pointer_type_r, composite_pointer_type,
411 common_pointer_type, cp_build_indirect_ref, cp_build_binary_op,
412 cp_truthvalue_conversion, convert_ptrmem, build_static_cast_1,
413 build_reinterpret_cast_1, build_const_cast_1, comp_ptr_ttypes_real,
414 casts_away_constness_r, casts_away_constness): Adjust.
415 * init.c (build_zero_init_1): Adjust.
416 * class.c (check_field_decls): Likewise.
417 * decl.c (check_default_argument): Likewise.
418 * rtti.c (target_incomplete_p): Likewise.
419 * tree.c (zero_init_p): Likewise.
420 * cxx-pretty-print.c (pp_cxx_ptr_operator,
421 pp_cxx_abstract_declarator): Likewise.
422 * typeck2.c (build_m_component_ref): Likewise.
423 * pt.c (convert_nontype_argument, invalid_nontype_parm_type_p,
424 dependent_type_p_r): Likewise.
425 * call.c (null_member_pointer_value_p, standard_conversion,
426 add_builtin_candidate, build_conditional_expr_1, compare_ics):
427 Likewise.
428 * cp-objcp-common.c (cp_var_mod_type_p): Likewise.
429 * cvt.c (cp_convert_to_pointer, ocp_convert,
430 perform_qualification_conversions): Likewise.
431 * mangle.c (write_type): Likewise.
432 * name-lookup.c (arg_assoc_type): Likewise.
433
498ad15e
PC
4342012-05-12 Paolo Carlini <paolo.carlini@oracle.com>
435
436 * parser.c (struct cp_parser_expression_stack_entry): Add location_t
437 field.
438 (cp_parser_binary_expression): Rework to always update at the same
439 time tree_type and loc.
440 * call.c (print_z_candidate): Add location_t parameter.
441 (print_z_candidates, convert_like_real, joust): Adjust.
442
3feb96d2
AO
4432012-05-11 Alexandre Oliva <aoliva@redhat.com>
444
445 PR c++/53209
446 * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
447
d1093817
PC
4482012-05-11 Paolo Carlini <paolo.carlini@oracle.com>
449
450 PR c++/53305
451 * pt.c (tsubst_copy: case PARM_DECL): Return error_mark_node if
452 tsubst_decl returns NULL_TREE.
453 * cxx-pretty-print.c (pp_cxx_simple_type_specifier): Handle
454 BOUND_TEMPLATE_TEMPLATE_PARM.
455
5a3c9cf2
PC
4562012-05-10 Paolo Carlini <paolo.carlini@oracle.com>
457
458 PR c++/53158
459 * cvt.c (ocp_convert): Error out early for void -> bool conversions.
460 * typeck.c (decay_conversion): Use error_at.
461 * call.c (build_integral_nontype_arg_conv, convert_like_real,
462 convert_arg_to_ellipsis, perform_implicit_conversion_flags,
463 initialize_reference): Likewise.
464 * cvt.c (warn_ref_binding): Add location_t parameter.
465 (cp_convert_to_pointer, convert_to_reference, ocp_convert,
466 convert_to_void, ): Use error_at and warning_at.
467
e5f13bf4
PC
4682012-05-10 Paolo Carlini <paolo.carlini@oracle.com>
469
470 PR c++/53301
471 * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
472 instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
473
4fe977f2
PC
4742012-05-06 Paolo Carlini <paolo.carlini@oracle.com>
475
476 PR c++/53152
477 * call.c (op_error, build_new_op_1, build_new_op): Add location_t
478 parameter.
479 (build_conditional_expr_1): Adjust.
480 * typeck.c (build_x_indirect_ref, build_x_binary_op,
481 build_x_unary_op): Add location_t parameter.
482 (rationalize_conditional_expr, build_x_array_ref,
483 build_x_compound_expr, cp_build_modify_expr, build_x_modify_expr):
484 Adjust.
485 * typeck2.c (build_x_arrow): Add location_t parameter.
486 * semantics.c (finish_unary_op_expr): Likewise.
487 (finish_increment_expr, handle_omp_for_class_iterator): Adjust.
488 * decl2.c (grok_array_decl): Add location_t parameter.
489 * parser.c (cp_parser_postfix_open_square_expression,
490 cp_parser_postfix_dot_deref_expression, cp_parser_unary_expression,
491 cp_parser_binary_expression, cp_parser_builtin_offsetof,
492 do_range_for_auto_deduction, cp_convert_range_for,
493 cp_parser_template_argument, cp_parser_omp_for_cond): Pass the
494 location, adjust.
495 * pt.c (tsubst_copy_and_build): Adjust.
496 * tree.c (maybe_dummy_object): Likewise.
497 * cp-tree.h: Update declarations.
498
db327b64
PC
4992012-05-04 Paolo Carlini <paolo.carlini@oracle.com>
500
501 * semantics.c (cxx_eval_constant_expression, case CONVERT_EXPR): Tidy.
502
fb4bcc8d
PC
5032012-05-04 Paolo Carlini <paolo.carlini@oracle.com>
504
505 PR c++/53166
506 * pt.c (instantiate_class_template_1): Increase / decrease
507 c_inhibit_evaluation_warnings around the tsubst_expr call
508 for STATIC_ASSERT_CONDITION.
509 (tsubst_expr, case STATIC_ASSERT): Likewise.
510 * typeck.c (cp_build_binary_op, case EQ_EXPR/NE_EXPR): Check
511 c_inhibit_evaluation_warnings in the OPT_Waddress warnings.
512
1fa2969f
PC
5132012-05-03 Paolo Carlini <paolo.carlini@oracle.com>
514
515 PR c++/53186
516 * call.c (build_over_call): Handle final member functions
517 and class types.
518 (build_new_method_call_1): Do not handle here.
519
56099f00
RG
5202012-05-02 Richard Guenther <rguenther@suse.de>
521
522 * decl.c (grokdeclarator): Properly check for sizes that
523 cover more than half of the address-space.
524
1941b0ca
MG
5252012-04-30 Marc Glisse <marc.glisse@inria.fr>
526
7edaa4d2
MG
527 PR c++/51033
528 * typeck.c (cp_build_array_ref): Handle VECTOR_TYPE.
529 * decl2.c (grok_array_decl): Likewise.
530
1941b0ca
MG
531 PR c++/51314
532 * parser.c (cp_parser_sizeof_operand): Require parentheses for
533 sizeof...
534
70dc395a
DS
5352012-04-30 Dodji Seketeli <dodji@redhat.com>
536
bfd93a72
DS
537 Fix location for static class members
538 * decl.c (grokdeclarator): Use the location carried by the
539 declarator for the DECL of the static class member.
540
e42d0630
DS
541 Fix va_arg type location
542 * cp-tree.h (build_x_va_arg): Take an additional location
543 parameter.
544 * call.c (build_x_va_arg): Take a loc parameter for the location
545 of the type of the va_arg expression.
546 * parser.c (cp_parser_primary_expression): Pass the type of the
547 type in the va_arg expression to build_x_va_arg.
548 * pt.c (tsubst_copy): Adjust calls to build_x_va_arg.
549
70dc395a
DS
550 Make conversion warnings work on NULL with -ftrack-macro-expansion
551 * call.c (conversion_null_warnings): Use the new
552 expansion_point_location_if_in_system_header.
553 * cvt.c (build_expr_type_conversion): Likewise.
554 * typeck.c (cp_build_binary_op): Likewise.
555
90137d8f
MLI
5562012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
557
558 * typeck.c (convert_for_assignment): Replace
559 Wmissing-format-attribute with Wsuggest-attribute=format.
560 * call.c (convert_for_arg_passing): Likewise.
561
df16e146
PC
5622012-04-26 Paolo Carlini <paolo.carlini@oracle.com>
563
564 PR c++/53096
565 * class.c (check_bases_and_members): Implement core/1333, do not
566 disallow defaulted in the class body non-const ref special members.
567
b40e334f
PC
5682012-04-24 Paolo Carlini <paolo.carlini@oracle.com>
569
570 PR c++/52363
571 * call.c (tourney, perform_overload_resolution,
572 build_operator_new_call, build_user_type_conversion_1,
573 build_user_type_conversion, perform_overload_resolution,
574 add_template_candidate, add_template_candidate_real,
575 add_template_conv_candidate, add_builtin_candidates,
576 add_builtin_candidate, build_builtin_candidate,
577 add_conv_candidate, add_function_candidate, implicit_conversion,
578 reference_binding, build_list_conv, conditional_conversion,
579 add_candidates, can_convert_array, build_aggr_conv,
580 build_array_conv, build_complex_conv, conditional_conversion):
581 Add tsubst_flags_t parameter.
582 (joust): Likewise, use it to handle SFINAE as if pedantic.
583 (add_list_candidates, build_integral_nontype_arg_conv,
584 perform_overload_resolution, build_new_function_call,
585 build_operator_new_call, build_op_call_1,
586 build_conditional_expr_1, build_new_op_1, convert_like_real,
587 convert_arg_to_ellipsis, convert_default_arg,
588 convert_for_arg_passing, build_over_call,
589 build_new_method_call_1, can_convert_arg, can_convert_arg_bad,
590 perform_implicit_conversion_flags,
591 perform_direct_initialization_if_possible,
592 initialize_reference): Adjust.
593 * typeck.c (casts_away_constness, casts_away_constness_r):
594 Add tsubst_flags_t parameter.
595 (convert_arguments, check_for_casting_away_constness,
596 build_static_cast_1, build_ptrmemfunc, convert_for_assignment):
597 Adjust.
598 * decl.c (reshape_init_r, check_default_argument): Likewise.
599 * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
600 * pt.c (convert_nontype_argument, check_non_deducible_conversion):
601 Likewise.
602 * init.c (build_new_1): Likewise.
603 * cvt.c (convert_to_reference, ocp_convert, build_type_conversion,
604 build_expr_type_conversion, ): Likewise.
605 * search.c (check_final_overrider): Likewise.
606 * cp-tree.h (build_user_type_conversion,
607 build_operator_new_call, can_convert, can_convert_arg,
608 can_convert_arg_bad, convert_default_arg,
609 convert_arg_to_ellipsis, convert_for_arg_passing):
610 Adjust declaration.
611
66058468
JH
6122012-04-22 Jan Hubicka <jh@suse.cz>
613
614 * decl2.c (maybe_make_one_only): Mark keyed COMDATs as USED so they
615 gets finalized.
616
c1771a20
MLI
6172012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
618
619 PR c/44774
620 * typeck.c (composite_pointer_type): Likewise.
621 (cxx_sizeof_or_alignof_type): Likewise.
622 (cp_build_array_ref): Likewise.
623 (cp_build_function_call_vec): Likewise.
624 (cp_build_addr_expr_1): Likewise.
625 (convert_member_func_to_ptr): Likewise.
626 * decl.c (check_tag_decl): Likewise.
627 (check_static_variable_definition): Likewise.
628 (compute_array_index_type): Likewise.
629 (create_array_type_for_decl): Likewise.
630 (grokdeclarator): Likewise.
631 (grok_op_properties): Likewise.
632 * error.c (maybe_warn_cpp0x): Likewise.
633 * pt.c (maybe_process_partial_specialization): Likewise.
634 (convert_template_argument): Likewise.
635 (do_decl_instantiation): Likewise.
636 (do_type_instantiation): Likewise.
637 * parser.c (cp_parser_primary_expression): Likewise.
638 (cp_parser_postfix_expression): Likewise.
639 (cp_parser_unary_expression): Likewise.
640 (cp_parser_question_colon_clause): Likewise.
641 (cp_parser_lambda_introducer): Likewise.
642 (cp_parser_lambda_declarator_opt): Likewise.
643 (cp_parser_compound_statement): Likewise.
644 (cp_parser_jump_statement): Likewise.
645 (cp_parser_declaration_seq_opt): Likewise.
646 (cp_parser_enum_specifier): Likewise.
647 (cp_parser_enumerator_list): Likewise.
648 (cp_parser_initializer_list): Likewise.
649 (cp_parser_member_declaration): Likewise.
650 * call.c (build_conditional_expr_1): Likewise.
651 * friend.c (make_friend_class): Likewise.
652 * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
653
7ca8f486
JH
6542012-04-21 Jan Hubicka <jh@suse.cz>
655
656 * method.c (make_alias_for): Do not set TREE_SYMBOL_REFERENCED.
657 * decl2.c (mark_needed): Likewise.
658 (decl_needed_p): Do not test TREE_SYMBOL_REFERENCED.
659
660 * decl2.c (cxx_callgraph_analyze_expr): Remove.
661 * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
662 * cp-tree.h (cxx_callgraph_analyze_expr): Remove.
663
ae52741c
MLI
6642012-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
665
666 PR 35441
667 * typeck.c (cp_build_function_call_vec): Do not pretty-print
668 expressions when caret is enabled.
669
b7262828
JH
6702012-04-20 Jan Hubicka <jh@suse.cz>
671
672 PR target/53042
673 * decl2.c (maybe_emit_vtables): Do not initialize same_comdat_group
674 list when target has no support for it.
675
c522573e
MM
6762012-04-20 Michael Matz <matz@suse.de>
677
678 * error.c (pedwarn_cxx98): Move va_end call after user
679 of the va_list.
680
89fcabaf
PC
6812012-04-18 Paolo Carlini <paolo.carlini@oracle.com>
682
683 PR c++/52422
684 * cp-tree.h (build_addr_func, decay_conversion,
685 get_member_function_from_ptrfunc,
686 build_m_component_ref, convert_member_func_to_ptr):
687 Add tsubst_flags_t parameter.
688 * typeck.c (cp_default_conversion): Add.
689 (decay_conversion, default_conversion,
690 get_member_function_from_ptrfunc, convert_member_func_to_ptr):
691 Add tsubst_flags_t parameter and use it throughout.
692 (cp_build_indirect_ref, cp_build_array_ref,
693 cp_build_function_call_vec, convert_arguments, build_x_binary_op,
694 cp_build_binary_op, cp_build_unary_op, build_reinterpret_cast_1,
695 build_const_cast_1, expand_ptrmemfunc_cst,
696 convert_for_initialization): Adjust.
697 * init.c (build_vec_init): Adjust.
698 * decl.c (grok_reference_init, get_atexit_node): Likewise.
699 * rtti.c (build_dynamic_cast_1, tinfo_base_init): Likewise.
700 * except.c (build_throw): Likewise.
701 * typeck2.c (build_x_arrow): Likewise.
702 (build_m_component_ref): Add tsubst_flags_t parameter and
703 use it throughout.
704 * pt.c (convert_nontype_argument): Adjust.
705 * semantics.c (finish_asm_stmt, maybe_add_lambda_conv_op): Likewise.
706 * decl2.c (build_offset_ref_call_from_tree): Likewise.
707 * call.c (build_addr_func): Add tsubst_flags_t parameter and
708 use it throughout.
709 (build_call_a, build_conditional_expr_1, build_new_op_1,
710 convert_like_real, convert_arg_to_ellipsis, build_over_call,
711 build_special_member_call): Adjust.
712 * cvt.c (cp_convert_to_pointer, force_rvalue,
713 build_expr_type_conversion): Likewise.
714
b2cb7511
TV
7152012-04-17 Tom de Vries <tom@codesourcery.com>
716
717 * cp-gimplify.c (begin_bc_block): Add location parameter and use as
718 location argument to create_artificial_label.
719 (finish_bc_block): Change return type to void. Remove body_seq
720 parameter, and add block parameter. Append label to STMT_LIST and
721 return in block.
722 (gimplify_cp_loop, gimplify_for_stmt, gimplify_while_stmt)
723 (gimplify_do_stmt, gimplify_switch_stmt): Remove function.
724 (genericize_cp_loop, genericize_for_stmt, genericize_while_stmt)
725 (genericize_do_stmt, genericize_switch_stmt, genericize_continue_stmt)
726 (genericize_break_stmt, genericize_omp_for_stmt): New function.
727 (cp_gimplify_omp_for): Remove bc_continue processing.
728 (cp_gimplify_expr): Genericize VEC_INIT_EXPR.
729 (cp_gimplify_expr): Mark FOR_STMT, WHILE_STMT, DO_STMT, SWITCH_STMT,
730 CONTINUE_STMT, and BREAK_STMT as unreachable.
731 (cp_genericize_r): Genericize FOR_STMT, WHILE_STMT, DO_STMT,
732 SWITCH_STMT, CONTINUE_STMT, BREAK_STMT and OMP_FOR.
733 (cp_genericize_tree): New function, factored out of ...
734 (cp_genericize): ... this function.
735
0fced815
PC
7362012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
737
738 PR c++/52599
739 * semantics.c (build_constexpr_constructor_member_initializers):
740 Check for function-try-block as function-body.
741
7422012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
743
744 PR c++/53003
745 * parser.c (cp_parser_member_declaration): Check that
746 initializer_token_start is non null before dereferencing it.
747
99d4f8f7
JM
7482012-04-16 Jason Merrill <jason@redhat.com>
749
1561ad74
JM
750 PR c++/38543
751 * pt.c (determine_specialization): Instead of comparing the number
752 of parms, check that tsubst gives the right answer.
753
54aa834f
JM
754 PR c++/52008
755 * pt.c (process_partial_specialization): Complain about a partial
756 specialization with fewer args than primary template parms.
757
3ab97d92
JM
758 PR c++/50830
759 * pt.c (convert_template_argument): Handle template template
760 argument packs.
761
99d4f8f7
JM
762 PR c++/50303
763 * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
764 template parameters.
765
051b40ff
PC
7662012-04-16 Paolo Carlini <paolo.carlini@oracle.com>
767
768 PR c++/49152
769 * call.c (op_error): Print types; when flag_diagnostics_show_caret
770 is false print expressions too.
771 (op_error_string): Add.
772
1c4010c6
JM
7732012-04-16 Jason Merrill <jason@redhat.com>
774
775 PR c++/51148
776 * friend.c (make_friend_class): Call check_for_bare_parameter_packs.
777
65c70e6b
JH
7782012-04-16 Jan Hubicka <jh@suse.cz>
779
780 * decl2.c (collect_candidates_for_java_method_alias): Use FOR_EACH
781 walkers to walk cgraph and varpool.
782
a3ddb738
JM
7832012-04-15 Jason Merrill <jason@redhat.com>
784
56992a78
JM
785 PR c++/47220
786 * pt.c (coerce_template_parameter_pack): Check for error_mark_node.
787
f9057514
JM
788 PR c++/52292
789 PR c++/52380
790 * pt.c (coerce_template_parms): Even if we aren't converting we
791 want to expand argument packs.
792
a3ddb738
JM
793 PR c++/52706
794 * mangle.c (write_type): nullptr_t is a builtin type.
795
960bfb69
JH
7962012-04-14 Jan Hubicka <jh@suse.cz>
797
798 * tree.c: Update field referenced for new cgraph/varpool layout.
799 * decl2.c: Likewise.
800
7996b727
JM
8012012-04-13 Jason Merrill <jason@redhat.com>
802
c26b89b7
JM
803 PR c++/52824
804 * pt.c (any_pack_expanson_args_p): New.
805 (coerce_template_parms): Use it.
806
7aca561c
JM
807 PR c++/52905
808 * call.c (joust): Handle comparing list and non-list ctors.
809
7996b727
JM
810 PR c++/52915
811 * decl2.c (finish_anon_union): Use cp_finish_decl.
812 * error.c (dump_function_name): Avoid showing anonymous "name".
813
af79925b
FC
8142012-04-11 Fabien Chêne <fabien@gcc.gnu.org>
815
816 PR c++/52465
817 * parser.c (cp_parser_class_name): Call strip_using_decl and
818 return the target decl.
819 * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
820 to be stripped is NULL_TREE.
821 (qualify_lookup): Call strip_using_decl and perform some checks on
822 the target decl.
823
701bd2a2
JM
8242012-04-11 Jason Merrill <jason@redhat.com>
825
6a091e8b
JM
826 PR debug/45088
827 * decl.c (grokdeclarator): Strip the injected-class-name typedef
828 if we are building a declaration or compound type.
829
701bd2a2
JM
830 PR c++/52906
831 * decl.c (check_tag_decl): Don't complain about attributes if we
832 don't even have a type.
833
fd4116f4
MLI
8342012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
835
836 * cvt.c (convert_to_void): Update comment.
837
c5c8755a
JM
8382012-04-05 Jason Merrill <jason@redhat.com>
839
840 PR c++/52596
841 * semantics.c (finish_non_static_data_member): In templates, pass
842 the decl to build_qualified_name.
843 * tree.c (lvalue_kind) [SCOPE_REF]: Handle FIELD_DECL.
844
6f6e1e9e
JM
8452012-04-04 Jason Merrill <jason@redhat.com>
846
847 PR c++/52845
848 * decl.c (finish_function): Update fntype after deducing return type.
849
a92873f1
JM
8502012-04-03 Jason Merrill <jason@redhat.com>
851
852 PR c++/52796
853 * pt.c (tsubst_initializer_list): A pack expansion with no elements
854 means value-initialization.
855
593a0835
PC
8562012-04-01 Paolo Carlini <paolo.carlini@oracle.com>
857
858 PR c++/50043
859 * class.c (deduce_noexcept_on_destructor,
860 deduce_noexcept_on_destructors): New.
861 (check_bases_and_members): Call the latter.
862 * decl.c (grokfndecl): Call the former.
863 * method.c (implicitly_declare_fn): Not static.
864 * cp-tree.h (deduce_noexcept_on_destructor, implicitly_declare_fn):
865 Declare
866
9f693d56
PC
8672012-03-29 Paolo Carlini <paolo.carlini@oracle.com>
868
869 PR c++/52718
870 * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
871 warn for a zero as null pointer constant default argument.
872
05262294
JM
8732012-03-29 Jason Merrill <jason@redhat.com>
874
875 PR c++/52685
876 * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
877
3cb04a53
JJ
8782012-03-29 Jakub Jelinek <jakub@redhat.com>
879
880 PR c++/52759
881 * decl.c (start_decl): Don't call maybe_apply_pragma_weak
882 if processing_template_decl.
883
37b9a3bd
JM
8842012-03-29 Jason Merrill <jason@redhat.com>
885
886 PR c++/52743
887 * call.c (compare_ics): Handle ck_aggr like ck_list.
888
917c1602
JM
8892012-03-28 Jason Merrill <jason@redhat.com>
890
891 PR c++/52746
892 * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
893 we didn't get an explicit scope.
894 * pt.c (tsubst_baselink): Likewise.
895
32e8bfc3
RG
8962012-03-28 Richard Guenther <rguenther@suse.de>
897
898 * typeck2.c (process_init_constructor_array): Use the proper
899 type for computing the array length.
900
9a1cb58a
MI
9012012-03-27 Meador Inge <meadori@codesourcery.com>
902
903 PR c++/52672
904 * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
905 stripped child trees that are not pointer types.
906
852497a3
JM
9072012-03-21 Jason Merrill <jason@redhat.com>
908
909 Implement return type deduction for normal functions with -std=c++1y.
910 * cp-tree.h (FNDECL_USED_AUTO): New macro.
911 (LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P): Remove.
912 (dependent_lambda_return_type_node): Remove.
913 (CPTI_DEPENDENT_LAMBDA_RETURN_TYPE): Remove.
914 (struct language_function): Add x_auto_return_pattern field.
915 (current_function_auto_return_pattern): New.
916 (enum tsubst_flags): Add tf_partial.
917 * decl.c (decls_match): Handle auto return comparison.
918 (duplicate_decls): Adjust error message for auto return.
919 (cxx_init_decl_processing): Remove dependent_lambda_return_type_node.
920 (cp_finish_decl): Don't do auto deduction for functions.
921 (grokdeclarator): Allow auto return without trailing return type in
922 C++1y mode.
923 (check_function_type): Defer checking of deduced return type.
924 (start_preparsed_function): Set current_function_auto_return_pattern.
925 (finish_function): Set deduced return type to void if not previously
926 deduced.
927 * decl2.c (change_return_type): Handle error_mark_node.
928 (mark_used): Always instantiate functions with deduced return type.
929 Complain about use if deduction isn't done.
930 * parser.c (cp_parser_lambda_declarator_opt): Use 'auto' for
931 initial return type.
932 (cp_parser_lambda_body): Don't deduce return type in a template.
933 (cp_parser_conversion_type_id): Allow auto in C++1y.
934 * pt.c (instantiate_class_template_1): Don't mess with
935 LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P.
936 (tsubst_copy_and_build): Likewise.
937 (fn_type_unification, tsubst): Don't reduce the template parm level
938 of 'auto' during deduction.
939 (unify): Compare 'auto' specially.
940 (get_bindings): Change test.
941 (always_instantiate_p): Always instantiate functions with deduced
942 return type.
943 (do_auto_deduction): Handle error_mark_node and lambda context.
944 Don't check for use in initializer.
945 (contains_auto_r): Remove.
946 * search.c (lookup_conversions_r): Handle auto conversion function.
947 * semantics.c (lambda_return_type): Handle null return. Don't mess
948 with dependent_lambda_return_type_node.
949 (apply_deduced_return_type): Rename from apply_lambda_return_type.
950 * typeck.c (merge_types): Handle auto.
951 (check_return_expr): Do auto deduction.
952 * typeck2.c (add_exception_specifier): Fix complain check.
953
48d261d2
PC
9542012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
955
956 PR c++/52487
957 * class.c (check_field_decls): Call literal_type_p only
958 on complete types.
959
d4655dc7
JJ
9602012-03-22 Jakub Jelinek <jakub@redhat.com>
961
962 PR c++/52671
963 * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
964 on CLASS_TYPE_P types.
965
9e291a01
JM
9662012-03-20 Jason Merrill <jason@redhat.com>
967
552b8185
JM
968 * lex.c (init_reswords): Use >= for cxx_dialect test.
969 * parser.c (cp_parser_exception_specification_opt): Likewise.
970
c19267cb
JM
971 * mangle.c (write_type): Handle 'auto'.
972 * init.c (build_new): Don't do auto deduction where it might
973 affect template mangling.
974
9e291a01
JM
975 PR c++/52510
976 * decl.c (reshape_init_class): Handle repeated reshaping.
977 * search.c (lookup_field_1): Add sanity check.
978
04398fa8
PC
9792012-03-19 Paolo Carlini <paolo.carlini@oracle.com>
980
981 PR c++/14710
982 * cp-tree.h (xvalue_p, maybe_warn_about_useless_cast): Declare.
983 * tree.c (xvalue_p): Define.
984 * typeck.c (maybe_warn_about_useless_cast): Define.
985 (build_reinterpret_cast, build_const_cast,
986 build_static_cast, cp_build_c_cast): Use maybe_warn_about_useless_cast.
987 * rtti.c (build_dynamic_cast): Likewise.
988 * pt.c (tsubst_copy_and_build, case CAST_EXPR): Increment/decrement
989 c_inhibit_evaluation_warnings before/after the build_* calls.
990
92caa91a
JM
9912012-03-15 Jason Merrill <jason@redhat.com>
992
993 PR c++/52582
994 * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
995
a12bf402
MLI
9962012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
997
998 PR c++/44783
999 * error.c (print_instantiation_partial_context): Use
1000 template_backtrace_limit.
1001
b24513a1
RO
10022012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1003
1004 * Make-lang.in (doc/g++.1): Remove IRIX 6.5 reference.
1005
717a5c62
JJ
10062012-03-14 Jakub Jelinek <jakub@redhat.com>
1007
1008 PR c++/52521
1009 * parser.c (lookup_literal_operator): Return fn only if
1010 processed all arguments from args vector and argtypes is
1011 void_list_node.
1012
74788b80
DS
10132012-01-30 Dodji Seketeli <dodji@redhat.com>
1014
1015 PR c++/51641
1016 * cp-tree.h (template_type_parameter_p): Declare new function.
74788b80 1017 (parameter_of_template_p): Remove.
a12bf402
MLI
1018 * pt.c (template_type_parameter_p): Define new function.
1019 (parameter_of_template_p): Remove.
1020 * name-lookup.c (binding_to_template_parms_of_scope_p): Don't rely
74788b80
DS
1021 on parameter_of_template_p anymore. Compare the level of the
1022 template parameter to the depth of the template.
1023
40703fdf
DS
10242011-12-15 Dodji Seketeli <dodji@redhat.com>
1025
1026 * call.c (standard_conversion, build_integral_nontype_arg_conv)
1027 (build_new_op_1, convert_like_real, is_subseq)
1028 (maybe_handle_implicit_object, maybe_handle_ref_bind, compare_ics)
1029 (joust): Use next_conversion instead of accessing fields of struct
1030 conversion directly.
1031
7792bd8a
PC
10322012-03-12 Paolo Carlini <paolo.carlini@oracle.com>
1033
1034 PR c++/52299
1035 * pt.c (tsubst_copy_and_build, case COND_EXPR): Avoid bogus
1036 division by zero warnings.
1037
a3299120
PC
10382012-03-08 Paolo Carlini <paolo.carlini@oracle.com>
1039
1040 * typeck.c (build_array_ref, cp_build_addr_expr_1, convert_ptrmem,
1041 build_ptrmemfunc): Consistently forward the tsubst_flags_t
1042 parameter.
1043 * call.c (resolve_args): Likewise.
1044
5ceb809d
JM
10452012-03-07 Jason Merrill <jason@redhat.com>
1046
1047 PR c++/52521
1048 * mangle.c (write_literal_operator_name): The length comes after the
1049 operator prefix.
1050
704b8582
JJ
10512012-03-05 Jakub Jelinek <jakub@redhat.com>
1052
1053 * pt.c (local_specializations): Change from htab_t into
1054 struct pointer_map_t *.
1055 (retrieve_local_specializations, register_local_specialization,
1056 tsubst_pack_expansion, instantiate_decl): Adjust users.
1057 (eq_local_specializations, hash_local_specialization): Remove.
1058
bb828cc7
JM
10592012-03-05 Jason Merrill <jason@redhat.com>
1060
b5053024
JM
1061 PR c++/51930
1062 * decl2.c (determine_visibility): Correct calculation of class
1063 args depth.
1064 * decl.c (check_tag_decl): Adjust warning.
1065
bb828cc7
JM
1066 * method.c (synthesized_method_walk): Cleanups don't affect the EH
1067 spec either.
1068
57910f3a
JM
10692012-03-03 Jason Merrill <jason@redhat.com>
1070
a491b7be
JM
1071 * init.c (perform_member_init): Cope with uninstantiated NSDMI.
1072
743af85b
JM
1073 Core 1270
1074 * call.c (build_aggr_conv): Call reshape_init.
1075 (convert_like_real): Likewise.
1076 * typeck2.c (process_init_constructor): Clear TREE_CONSTANT if
1077 not all constant.
1078
dd94dde7
JM
1079 * mangle.c (write_nested_name): Use decl_mangling_context.
1080 (write_prefix, write_template_prefix): Likewise.
1081
77d4d7c5
JM
1082 PR c++/36797
1083 * mangle.c (write_expression): Improve diagnostic for TRAIT_EXPR.
1084
57910f3a
JM
1085 * class.c (add_method): Always build an OVERLOAD for using-decls.
1086 * search.c (lookup_member): Handle getting an OVERLOAD for a
1087 single function.
1088
ff2f581b
PC
10892012-03-02 Paolo Carlini <paolo.carlini@oracle.com>
1090
1091 PR c++/51989
1092 * typeck2.c (build_x_arrow): Take a tsubst_flags_t argument and
1093 propagate it.
1094 * cp-tree.h (build_x_arrow): Adjust prototype.
1095 * pt.c (tsubst_copy_and_build): Adjust call.
1096 * parser.c (cp_parser_postfix_dot_deref_expression): Likewise.
1097
54e9d944
PC
10982012-03-02 Paolo Carlini <paolo.carlini@oracle.com>
1099
1100 * name-lookup.c (binding_to_template_parms_of_scope_p): Clean up.
1101
ae45549b
JM
11022012-02-29 Jason Merrill <jason@redhat.com>
1103
1104 PR c++/51930
1105 * decl.c (check_tag_decl): Move warning for misplaced attributes here.
1106 (shadow_tag): From here.
1107 * parser.c (cp_parser_explicit_instantiation): Don't warn here.
1108
6e887223
JJ
11092012-02-21 Jakub Jelinek <jakub@redhat.com>
1110
1111 PR c++/52312
1112 * typeck.c (check_literal_operator_args): Initialize *long_double_p
1113 and *long_long_unsigned_p even if processing_template_decl.
1114
e9339a68
JM
11152012-02-16 Jason Merrill <jason@redhat.com>
1116
1117 PR c++/52248
1118 * decl.c (define_label): Use timevar_cond_start/stop.
1119
6acc8d53
FC
11202012-02-16 Fabien Chêne <fabien@gcc.gnu.org>
1121
1122 PR c++/52126
1123 * decl.c (xref_basetypes): call dependent_scope_p instead of
1124 dependent_type_p.
1125
539b471b
JM
11262012-02-16 Jason Merrill <jason@redhat.com>
1127
1128 PR c++/51415
1129 * error.c (dump_expr): Handle lambda closures specifically.
1130
7f3dee0e
JM
11312012-02-14 Jason Merrill <jason@redhat.com>
1132
1133 * parser.c (cp_parser_explicit_instantiation): Give a warning
1134 for ignored attributes on explicit class instantiation.
1135
61c85130
JJ
11362012-02-14 Jakub Jelinek <jakub@redhat.com>
1137
1138 PR c++/52247
1139 * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
1140 lookup_label on label's name and set TREE_USED.
1141
f0ebe02d
JM
11422012-02-14 Jason Merrill <jason@redhat.com>
1143
1144 PR c++/39055
1145 * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
1146
45f41865
JJ
11472012-02-14 Jakub Jelinek <jakub@redhat.com>
1148
1149 PR c/52181
1150 * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
1151 newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
1152
84d594c6
JM
11532012-02-07 Jason Merrill <jason@redhat.com>
1154
88f7a9f6
JM
1155 PR c++/51675
1156 * semantics.c (cx_check_missing_mem_inits): Handle unions.
1157 Fix constexpr default constructor logic.
1158
84d594c6
JM
1159 PR c++/52035
1160 * pt.c (tsubst): Strip uninstantiated typedef.
1161
cb406914
JM
11622012-02-06 Jason Merrill <jason@redhat.com>
1163
1164 PR c++/52088
1165 * cvt.c (build_expr_type_conversion): Check for template conversion.
1166
2297ab7d
JM
11672012-01-31 Jason Merrill <jason@redhat.com>
1168
1169 PR c++/52043
1170 * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
1171 * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
1172 (tsubst_pack_expansion): Check it.
1173
07a71223
PC
11742012-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1175
1176 PR c++/51327
1177 * class.c (explain_non_literal_class): Correctly handle implicitly
1178 deleted constructors.
1179
8c713829
JJ
11802012-01-27 Jakub Jelinek <jakub@redhat.com>
1181
1182 PR c++/51852
1183 * pt.c (tsubst_pack_expansion): Delete and restore
1184 local_specialization whenever need_local_specialization, not just
1185 when saved_local_specializations is non-NULL.
1186
6c1e7aa9
PC
11872012-01-26 Paolo Carlini <paolo.carlini@oracle.com>
1188
1189 PR c++/51370
1190 * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
1191 as TREE_OPERAND (t, 1).
1192
c873934c
JM
11932012-01-24 Jason Merrill <jason@redhat.com>
1194
d2bb8192
JM
1195 PR c++/51917
1196 * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
1197
c873934c
JM
1198 PR c++/51973
1199 * tree.c (called_fns_equal): Check template args.
1200 (cp_tree_equal): Call it.
1201
00a42fb3
AH
12022012-01-24 Aldy Hernandez <aldyh@redhat.com>
1203 Patrick Marlier <patrick.marlier@gmail.com>
1204
1205 PR c++/51928
1206 * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
1207 thunk for set_one_vmethod_tm_attributes.
1208
7cc35b68
PC
12092012-01-24 Paolo Carlini <paolo.carlini@oracle.com>
1210
1211 PR c++/51223
1212 * call.c (build_over_call): Check for error_mark_node as
1213 TREE_VALUE when default arguments are processed.
1214
22197246
JM
12152012-01-23 Jason Merrill <jason@redhat.com>
1216
1217 PR c++/51930
1218 * decl2.c (determine_visibility): Check for visibility attribute
1219 on template specialization.
1220
1beb5272
PC
12212012-01-23 Paolo Carlini <paolo.carlini@oracle.com>
1222
1223 PR c++/51398
1224 * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
1225
aef3a6b2
JM
12262012-01-23 Jason Merrill <jason@redhat.com>
1227
1228 PR c++/51925
1229 * class.c (add_method): Set OVL_USED for using-decls.
1230 * tree.c (ovl_scope): New.
1231 * cp-tree.h: Declare it.
1232 * parser.c (cp_parser_template_name): Use it.
1233 * semantics.c (baselink_for_fns): Likewise.
1234 * name-lookup.c (set_inherited_value_binding_p): Likewise.
1235
b968b192
PC
12362012-01-20 Paolo Carlini <paolo.carlini@oracle.com>
1237
1238 PR c++/51402
1239 * pt.c (lookup_template_class_1): Check context returned by
1240 tsubst for error_mark_node.
1241
54a9f5ea
KT
12422012-01-19 Kai Tietz <ktietz@redhat.com>
1243
1244 PR c++/51344
1245 * decl2.c (save_template_attributes): Use merge_attributes
1246 instead of chaining up via TREE_CHAIN.
1247
e58d4228
JM
12482012-01-19 Jason Merrill <jason@redhat.com>
1249
1250 PR c++/51889
1251 * class.c (finish_struct): Call add_method here for function usings.
1252 * semantics.c (finish_member_declaration): Not here.
1253
55e83c66
PC
12542012-01-18 Paolo Carlini <paolo.carlini@oracle.com>
1255
1256 PR c++/51225
1257 * typeck2.c (store_init_value): Within a template guard
1258 cxx_constant_value with require_potential_constant_expression.
1259 * pt.c (convert_nontype_argument): Likewise.
1260
95875a9b
JJ
12612012-01-16 Jakub Jelinek <jakub@redhat.com>
1262
1263 PR c++/51854
1264 * mangle.c (write_template_arg_literal): Handle complex.
1265
645c7a55
JM
12662012-01-16 Jason Merrill <jason@redhat.com>
1267
a7cd72be
JM
1268 PR c++/51827
1269 * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
1270
645c7a55
JM
1271 PR c++/51868
1272 * typeck.c (build_static_cast_1): Handle bit-fields properly.
1273
12448f77
ILT
12742012-01-13 Ian Lance Taylor <iant@google.com>
1275
1276 PR c++/50012
1277 * typeck.c (enum_cast_to_int): New static function.
1278 (cp_build_binary_op): When handling warn_sign_compare, don't test
1279 for TREE_NO_WARNING. Do call enum_cast_to_int.
1280 * call.c (avoid_sign_compare_warnings): Remove static function.
1281 (build_new_op_1): Don't call avoid_sign_compare_warnings.
1282
8554df86
SB
12832012-01-13 Steven Bosscher <steven@gcc.gnu.org>
1284
1285 * decl2.c: Do not include tree-mudflap.h
1286 * semantics.c: Likewise.
1287
4ce7d589
JM
12882012-01-13 Jason Merrill <jason@redhat.com>
1289
04771457
JM
1290 PR c++/20681
1291 * semantics.c (finish_break_stmt): Avoid adding an unreachable
1292 BREAK_STMT.
1293
fc970532
JM
1294 PR c++/51813
1295 * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
1296 when reducing the visibility.
1297
4ce7d589
JM
1298 PR c++/51620
1299 * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
1300
f83fa0bf
JM
13012012-01-12 Jason Merrill <jason@redhat.com>
1302
1303 PR c++/51714
1304 * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
1305 value-dependent.
1306
1cef7102
DS
13072012-01-13 Dodji Seketeli <dodji@redhat.com>
1308
1309 PR c++/51633
1310 * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
1311 Set the pointer to the last block of the constructor to the
1312 current statement.
1313 (build_constexpr_constructor_member_initializers): Get
1314 build_data_member_initialization a chance to deal with more
1315 statements before we choke.
1316
ca5333f2
JM
13172012-01-12 Jason Merrill <jason@redhat.com>
1318
4643a68e
JM
1319 PR c++/48051
1320 * mangle.c (write_expression): Mangle BASELINK scope if
1321 BASELINK_QUALIFIED_P.
1322 * search.c (adjust_result_of_qualified_name_lookup): Set
1323 BASELINK_QUALIFIED_P.
1324 * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
1325 * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
1326 adjust_result_of_qualified_name_lookup for non-qualified names.
1327
ca5333f2
JM
1328 PR c++/51403
1329 * pt.c (unify): Handle error_mark_node.
1330
7bb37352
JM
13312012-01-11 Jason Merrill <jason@redhat.com>
1332
efcc9293
JM
1333 PR c++/51565
1334 * call.c (standard_conversion): For ptrmemfuncs, compare the
1335 static_fn_types.
1336
b34e0e6f
JM
1337 PR c++/51818
1338 * mangle.c (find_substitution): A type is only a substitution
1339 match if we're looking for a type.
1340 (write_nested_name): Use decl_mangling_context.
1341
276fd9ac
JM
1342 * decl.c (decls_match): Assert that the arguments are decls.
1343
7bb37352
JM
1344 PR c++/51613
1345 * pt.c (resolve_overloaded_unification): Compare types with
1346 same_type_p, not decls_match.
1347
a1e0490f
JM
13482012-01-10 Jason Merrill <jason@redhat.com>
1349
5313d330
JM
1350 PR c++/51614
1351 * class.c (build_base_path): Diagnose ambiguous base.
1352
a1e0490f
JM
1353 PR c++/51433
1354 * semantics.c (cxx_eval_call_expression): Always retry previously
1355 non-constant expressions.
1356
11a36a27
JM
13572012-01-06 Jason Merrill <jason@redhat.com>
1358
b2218da7
JM
1359 DR 686
1360 PR c++/47450
1361 * parser.c (cp_parser_new_expression): Set
1362 type_definition_forbidden_message.
1363
4b6aaa99
JM
1364 PR c++/6057
1365 PR c++/48051
1366 PR c++/50855
1367 PR c++/51322
1368 * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
1369 THROW_EXPR, CONSTRUCTOR, OVERLOAD. Fix PREINCREMENT_EXPR and
1370 PREDECREMENT_EXPR.
1371 (write_template_arg): Fix mangling of class-scope functions and
1372 argument packs.
1373 (mangle_decl): Update suggested -fabi-version argument.
1374 * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
1375 DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
1376 * tree.c (dependent_name): No longer static.
1377 * cp-tree.h: Declare it.
1378 * pt.c (unify): Defer handling of unconverted functions.
1379
1be3db36
JM
1380 * mangle.c (mangle_decl): Don't generate mangling aliases
1381 for maybe-in-charge [cd]tors.
1382
11a36a27
JM
1383 * error.c (dump_expr): Print type of CONSTRUCTOR.
1384
45a29025
DS
13852012-01-05 Dodji Seketeli <dodji@redhat.com>
1386
1387 PR c++/51541
1388 * parser.c (cp_parser_alias_declaration): Get out early upon
1389 errors in the identifier or the attributes.
1390
a10bf1f9
PC
13912012-01-04 Paolo Carlini <paolo.carlini@oracle.com>
1392
1393 PR c++/51064
1394 * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
1395 the tree returned by build_x_binary_op.
1396
2b59b528
PC
13972012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
1398
1399 PR c++/51738
1400 * parser.c (cp_parser_postfix_open_square_expression): Handle
1401 postfix-expression [ braced-init-list ].
1402
63891ba2
PC
14032012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
1404
1405 PR c++/29273
1406 * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
1407 call decay_conversion on v.
1408
da89f7f3
PC
14092012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
1410
1411 PR c++/15867
1412 * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
1413 declaration followed by specialization.
1414
b848354b
JJ
14152012-01-03 Jakub Jelinek <jakub@redhat.com>
1416
1417 PR c++/51669
1418 * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
1419 on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
1420
d28c2dcd
JM
14212012-01-02 Jason Merrill <jason@redhat.com>
1422
ab807569
JM
1423 DR 1359
1424 PR c++/51675
1425 * method.c (walk_field_subobs): Don't check for uninitialized
1426 fields in a union.
1427 (synthesized_method_walk): Check here.
1428
d28c2dcd
JM
1429 DR 325
1430 PR c++/51666
1431 * parser.c (cp_parser_cache_defarg): Split out...
1432 (cp_parser_parameter_declaration): ...from here.
1433 (cp_parser_save_nsdmi): Use it.
1434 (cp_parser_cache_group): Remove CPP_COMMA support.
1435
358b9253
DS
14362012-01-02 Dodji Seketeli <dodji@redhat.com>
1437
1438 PR c++/51462
1439 * semantics.c (cx_check_missing_mem_inits): Don't assert in case
1440 of error.
1441
7d510a82
PC
14422012-01-02 Paolo Carlini <paolo.carlini@oracle.com>
1443
1444 PR c++/20140
1445 * typeck2.c (digest_init_r): Use copy_init when initializing
1446 an array of chars.
1447
11cc5f49
PC
14482012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
1449
1450 PR c++/16603
1451 * decl.c (build_enumerator): Don't call perform_integral_promotions
1452 on the value.
1453
9f88ff5a
PC
14542012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
1455
1456 PR c++/51379
1457 * typeck.c (build_reinterpret_cast_1): Implement resolution of
1458 DR 799.
1459
14602012-01-01 Fabien Chêne <fabien@gcc.gnu.org>
5135baed
FC
1461
1462 * parser.c (cp_parser_using_declaration): Add a warning about
1463 deprecated access declarations when no errors were encountered
1464 while parsing the access declaration. Save the first token in
1465 order to emit the warning at the right place.
ad41bd84 1466\f
a7f45047 1467Copyright (C) 2012 Free Software Foundation, Inc.
ad41bd84
JM
1468
1469Copying and distribution of this file, with or without modification,
1470are permitted in any medium without royalty provided the copyright
1471notice and this notice are preserved.