re PR c++/22556 (extern array: compatible declaration at function scope refused)
[gcc.git] / gcc / cp / ChangeLog
1 2014-06-09 Paolo Carlini <paolo.carlini@oracle.com>
2
3 PR c++/22556
4 * name-lookup.c (pushdecl_maybe_friend_1): Use comptypes.
5
6 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
7
8 * method.c (use_thunk): Use set_decl_section_name.
9 * optimize.c (maybe_clone_body): Use set_decl_section_name.
10 * decl.c (duplicate_decls): Likewise.
11 * vtable-class-hierarchy.c: Likewise.
12
13 2014-06-06 Paolo Carlini <paolo.carlini@oracle.com>
14
15 PR c++/60184
16 * class.c (check_field_decls): In C++11 mode do not reject
17 static data members and reference-type members in unions.
18
19 2014-06-05 Jason Merrill <jason@redhat.com>
20
21 PR c++/43453
22 * decl.c (check_initializer): Collapse a TREE_LIST here.
23 * typeck2.c (store_init_value): Not here.
24
25 2014-06-05 Richard Biener <rguenther@suse.de>
26 Paolo Carlini <paolo.carlini@oracle.com>
27
28 PR c++/56961
29 * cp-gimplify.c (cp_gimplify_expr, [MODIFY_EXPR]): Rework
30 handling of empty classes.
31
32 2014-06-04 Jason Merrill <jason@redhat.com>
33
34 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful note
35 for noexcept and thread_local, too.
36
37 PR c++/61343
38 * decl.c (check_initializer): Maybe clear
39 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
40
41 2014-06-05 Richard Biener <rguenther@suse.de>
42
43 PR c++/61004
44 * typeck.c (cp_build_indirect_ref): Do not emit strict-aliasing
45 warnings for accessing empty classes.
46
47 2014-06-05 Marek Polacek <polacek@redhat.com>
48
49 PR c/49706
50 * parser.c (cp_parser_binary_expression): Warn when logical not is
51 used on the left hand side operand of a comparison.
52
53 2014-06-04 Paolo Carlini <paolo.carlini@oracle.com>
54
55 PR c++/43453
56 * typeck.c (cp_build_modify_expr): Handle array of characters
57 initialized by a string literal.
58 * decl.c (check_initializer): Handle parenthesized string literal
59 as initializer.
60 * typeck2.c (store_init_value): Remove redundant check.
61
62 2014-06-04 Jason Merrill <jason@redhat.com>
63
64 PR c++/51253
65 PR c++/61382
66 * cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPR_LIST_INIT_P here.
67 * semantics.c (simplify_aggr_init_expr): Not here, just copy it.
68
69 2014-06-04 Igor Zamyatin <igor.zamyatin@intel.com>
70
71 PR c/58942
72 * cp-array-notation.c (expand_sec_reduce_builtin): Handle the case
73 with a pointer.
74
75 2014-06-03 Paolo Carlini <paolo.carlini@oracle.com>
76
77 DR 1423
78 PR c++/52174
79 * call.c (standard_conversion): Convert nullptr to bool only
80 in case of direct-initialization.
81 (convert_like_real): Provide informative error message.
82
83 2014-06-03 Marek Polacek <polacek@redhat.com>
84
85 PR c/60439
86 * semantics.c (finish_switch_cond): Warn if switch condition has
87 boolean value.
88
89 2014-06-03 Jason Merrill <jason@redhat.com>
90
91 PR c++/60992
92 * pt.c (tsubst_copy) [VAR_DECL]: Try lookup first. Add a new
93 variable to local_specializations.
94
95 PR c++/60848
96 * call.c (is_std_init_list): Check CLASSTYPE_TEMPLATE_INFO.
97
98 2014-06-02 Jason Merrill <jason@redhat.com>
99
100 PR c++/61046
101 * decl.c (reshape_init_class): Handle un-folded
102 constant-expressions.
103
104 PR c++/61134
105 * pt.c (pack_deducible_p): Handle canonicalization.
106
107 2014-06-02 Paolo Carlini <paolo.carlini@oracle.com>
108
109 * pt.c (tsubst_function_type): Initialize arg_types.
110
111 2014-06-02 Siva Chandra Reddy <sivachandra@google.com>
112
113 PR debug/57519
114 * class.c (handle_using_decl): Pass the correct scope to
115 cp_emit_debug_info_for_using.
116
117 2014-06-02 Ville Voutilainen <ville.voutilainen@gmail.com>
118
119 PR c++/59483
120 PR c++/61148
121 * search.c (accessible_p): Use current_nonlambda_class_type.
122 * semantics.c (check_accessibility_of_qualified_id): Likewise.
123
124 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
125
126 * decl.c: Include builtins.h.
127 * semantics.c: Likewise.
128
129 2014-05-31 Paolo Carlini <paolo.carlini@oracle.com>
130
131 DR 1227
132 PR c++/57543
133 * cp-tree.h (TYPE_HAS_LATE_RETURN_TYPE): Add.
134 * pt.c (tsubst_function_type): Inject the this parameter; do the
135 substitutions in the order mandated by the DR.
136 (copy_default_args_to_explicit_spec): Copy TYPE_HAS_LATE_RETURN_TYPE.
137 * decl.c (grokdeclarator): Maybe set TYPE_HAS_LATE_RETURN_TYPE.
138 (static_fn_type): Copy it.
139 * decl2.c (build_memfn_type, change_return_type,
140 cp_reconstruct_complex_type): Likewise.
141 * parser.c (cp_parser_lambda_declarator_opt): Likewise.
142 * tree.c (strip_typedefs): Likewise.
143 * typeck.c (merge_types): Likewise.
144
145 2014-05-30 Jason Merrill <jason@redhat.com>
146
147 PR c++/56947
148 * pt.c (instantiate_decl): Check that defer_ok is not set for
149 local class members.
150
151 PR c++/60992
152 * pt.c (tsubst_init): Split out from...
153 (tsubst_expr) [DECL_EXPR]: Here.
154 (tsubst_copy) [VAR_DECL]: Use it.
155 * semantics.c (finish_id_expression): Return the decl for static/const.
156
157 2014-05-28 Jason Merrill <jason@redhat.com>
158
159 PR c++/47202
160 * decl.c (cxx_comdat_group): Return a decl.
161 * optimize.c (cdtor_comdat_group): Get its DECL_ASSEMBLER_NAME.
162
163 * pt.c (tsubst) [ARRAY_TYPE]: Check for array of array of unknown
164 bound.
165
166 PR c++/61242
167 * call.c (build_aggr_conv): Ignore passed in flags.
168 (build_array_conv, build_complex_conv): Likewise.
169
170 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
171
172 * optimize.c (maybe_thunk_body): Use set_comdat_group.
173 (maybe_clone_body): Likewise.
174 * decl.c (duplicate_decls): Update code duplicating comdat group;
175 do not copy symtab pointer; before freeing newdecl remove it
176 from symtab.
177 * decl2.c (constrain_visibility): Use set_comdat_group.
178
179 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
180
181 * rtti.c: Include tm_p.h
182 (emit_tinfo_decl): Force RTTI data to be aligned to required
183 ABI alignment only.
184
185 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
186
187 * class.c (build_vtable): Align vtables to TARGET_VTABLE_ENTRY_ALIGN
188 ignoring other target adjustments.
189
190 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
191
192 * semantics.c (finish_omp_clauses): Remove duplicated variable
193 initialization.
194
195 * parser.c (cp_parser_omp_target): Return bool values.
196
197 2014-05-22 Paolo Carlini <paolo.carlini@oracle.com>
198
199 PR c++/61088
200 * lambda.c (add_capture): Enforce that capture by value requires
201 complete type.
202 * typeck2.c (cxx_incomplete_type_inform): Early return if
203 TYPE_MAIN_DECL is null.
204
205 2014-05-21 Jonathan Wakely <jwakely@redhat.com>
206
207 PR c/61271
208 * cp-array-notation.c (cilkplus_an_triplet_types_ok_p): Fix condition.
209
210 2014-05-21 Ville Voutilainen <ville.voutilainen@gmail.com>
211
212 PR c++/61133
213 * lambda.c (build_capture_proxy, add_capture): Treat normal
214 captures and init-captures identically.
215
216 2014-05-21 Mark Wielaard <mjw@redhat.com>
217
218 PR debug/16063
219 * cp-lang.c (cxx_enum_underlying_base_type): New function.
220 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define.
221
222 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
223
224 * cvt.c (convert_to_void): Use void_node instead of void_zero_node.
225 * cp-array-notation.c (replace_invariant_exprs): Likewise.
226 (expand_array_notation): Handle VOID_CST.
227 * error.c (dump_expr): Likewise.
228 * cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
229 (cxx_pretty_printer::expression): Likewise.
230 (pp_cxx_new_expression): Use void_node instead of void_zero_node.
231 * decl.c (register_dtor_fn): Likewise.
232 * init.c (build_raw_new_expr, build_new_1, build_vec_init)
233 (build_delete, push_base_cleanups): Likewise.
234 * mangle.c (write_expression): Likewise.
235 * semantics.c (finish_break_stmt, empty_expr_stmt_p): Likewise.
236 * pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
237 (tsubst, tsubst_copy, build_non_dependent_expr): Handle VOID_CST.
238 * tree.c (cp_tree_equal): Likewise.
239 (build_dummy_object, is_dummy_object, stabilize_expr): Use void_node
240 instead of void_zero_node.
241 * typeck.c (check_return_expr): Likewise.
242 * typeck2.c (build_functional_cast): Likewise.
243
244 2014-05-21 Igor Zamyatin <igor.zamyatin@intel.com>
245
246 PR c/60189
247 * parser.c (cp_parser_postfix_expression): Move handling of cilk_sync
248 from here to...
249 (cp_parser_statement): ...here. Make sure only semicolon can go after
250 Cilk_sync.
251
252 2014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
253
254 PR c++/58753
255 PR c++/58930
256 PR c++/58704
257 * typeck2.c (digest_nsdmi_init): New.
258 * parser.c (cp_parser_late_parse_one_default_arg): Use it.
259 * init.c (get_nsdmi): Likewise.
260 * cp-tree.h (digest_nsdmi_init): Declare.
261
262 2014-05-20 Jason Merrill <jason@redhat.com>
263
264 * typeck.c (get_member_function_from_ptrfunc): Don't try to look
265 up a virtual function in a dummy object.
266
267 2014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
268
269 PR c++/60373
270 * decl.c (duplicate_decls): Replace pair of warning_at with
271 warning_at + inform.
272 (maybe_commonize_var): Likewise.
273
274 2014-05-20 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
275
276 PR bootstrap/61210
277 * pt.c (tsubst_copy, tsubst_omp_for_iterator, tsubst_expr)
278 (tsubst_copy_and_build): Perform recursive substitutions in a
279 deterministic order.
280
281 2014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
282
283 PR c++/58664
284 * typeck2.c (cxx_incomplete_type_inform): New.
285 (cxx_incomplete_type_diagnostic): Use it.
286 * decl.c (grokdeclarator): Check the element type of an
287 incomplete array type; call the above.
288 * cp-tree.h (cxx_incomplete_type_inform): Declare.
289
290 2014-05-19 Jason Merrill <jason@redhat.com>
291
292 PR c++/58761
293 * pt.c (tsubst_copy): Don't check at_function_scope_p.
294 (instantiate_class_template_1): Don't push_to_top_level in an nsdmi.
295
296 2014-05-19 Paolo Carlini <paolo.carlini@oracle.com>
297
298 * typeck2.c (cxx_incomplete_type_diagnostic): Use inform.
299 * parser.c (cp_parser_enum_specifier): Likewise.
300
301 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
302
303 * class.c (sorted_fields_type_new): Adjust.
304 * cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Likewise.
305 * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
306 * cp-tree.h: Remove usage of variable_size gty attribute.
307 * decl.c (make_label_decl): Adjust.
308 (check_goto): Likewise.
309 (start_preparsed_function): Likewise.
310 (save_function_data): Likewise.
311 * lex.c (init_reswords): Likewise.
312 (retrofit_lang_decl): Likewise.
313 (cxx_dup_lang_specific_decl): Likewise.
314 (copy_lang_type): Likewise.
315 (cxx_make_type): Likewise.
316 * name-lookup.c (binding_entry_make): Likewise.
317 (binding_table_construct): Likewise.
318 (binding_table_new): Likewise.
319 (cxx_binding_make): Likewise.
320 (pushdecl_maybe_friend_1): Likewise.
321 (begin_scope): Likewise.
322 (push_to_top_level): Likewise.
323 * parser.c (cp_lexer_alloc): Likewise.
324 (cp_lexer_new_from_tokens): Likewise.
325 (cp_token_cache_new): Likewise.
326 (cp_parser_context_new): Likewise.
327 (cp_parser_new): Likewise.
328 (cp_parser_nested_name_specifier_opt): Likewise.
329 (cp_parser_template_id): Likewise.
330 * pt.c (maybe_process_partial_specialization): Likewise.
331 (register_specialization): Likewise.
332 (add_pending_template): Likewise.
333 (lookup_template_class_1): Likewise.
334 (push_tinst_level): Likewise.
335 * semantics.c (register_constexpr_fundef): Likewise.
336 (cxx_eval_call_expression): Likewise.
337 * typeck2.c (abstract_virtuals_error_sfinae): Likewise.
338
339 2014-05-16 Paolo Carlini <paolo.carlini@oracle.com>
340
341 PR c++/51640
342 * parser.c (cp_parser_diagnose_invalid_type_name): Early return
343 when cp_parser_lookup_name sets ambiguous_decls.
344
345 2014-05-15 Jason Merrill <jason@redhat.com>
346
347 * call.c (print_conversion_rejection): Use loc consistently.
348
349 2014-05-14 Paolo Carlini <paolo.carlini@oracle.com>
350
351 * cp-tree.h (DIRECT_LIST_INIT_P): Add.
352 * call.c (convert_like_real, build_new_method_call_1): Use it.
353 * decl2.c (grokfield): Likewise.
354 * init.c (perform_member_init, build_aggr_init, expand_default_init,
355 build_new_1): Likewise.
356 * mangle.c (write_expression): Likewise.
357 * parser.c (cp_parser_late_parse_one_default_arg): Likewise.
358
359 2014-05-14 Jason Merrill <jason@redhat.com>
360
361 PR c++/20332
362 PR c++/21631
363 * call.c (reference_binding): Treat lvalue/rvalue mismatch and
364 dropped cv-quals as a bad conversion.
365 (convert_like_real) [ck_ref_bind]: Explain them.
366 (compare_ics): Check badness before stripping reference
367 bindings. Handle comparing bad reference bindings.
368 * typeck.c (comp_cv_qualification): Add overload that just takes
369 integers.
370 * cp-tree.h: Declare it.
371
372 * call.c (struct conversion_info): Rename 'from_type' to 'from'.
373 (arg_conversion_rejection, bad_arg_conversion_rejection)
374 (explicit_conversion_rejection, template_conversion_rejection): Adjust.
375 (add_function_candidate): Pass actual argument, rather than type, to
376 bad_arg_conversion_rejection.
377 (print_conversion_rejection): Explain what's wrong with the conversion.
378 (print_z_candidates): Say "candidate:" before each candidate.
379 (splice_viable): Be strict if we see a viable or template candidate.
380 (build_user_type_conversion_1): Pass false to strict parameter.
381 (perform_overload_resolution, build_conditional_expr_1): Likewise.
382 (build_new_op_1, build_new_method_call_1): Likewise.
383 (build_op_call_1): Pass true to strict parameter.
384
385 2014-05-13 Jason Merrill <jason@redhat.com>
386
387 * call.c (print_error_for_call_failure): Say "no match" rather
388 than "ambiguous" if there were no strict matches.
389 (build_new_method_call_1): Likewise.
390
391 PR c++/61151
392 * semantics.c (is_this_parameter): Allow capture proxies too.
393
394 2014-05-12 Jason Merrill <jason@redhat.com>
395
396 * call.c (maybe_print_user_conv_context): New.
397 (convert_like_real): Use it. Print call context for bad
398 user-defined conversion.
399 (build_over_call): Print call context for bad 'this' conversion.
400
401 * call.c (convert_like_real): Use inform for identifying the
402 declaration point.
403
404 2014-05-12 Paolo Carlini <paolo.carlini@oracle.com>
405
406 * cvt.c (cp_convert_to_pointer): Don't call error_at if
407 complain & tf_error is false.
408
409 * decl.c (make_unbound_class_template): Prefer inform for
410 "declared here"-type message.
411
412 2014-05-09 Momchil Velikov <momchil.velikov@gmail.com>
413
414 PR c++/60463
415 PR c++/60755
416 * lambda.c (lambda_expr_this_capture): Add new parameter
417 add_capture_p controlling whether the functions will try to
418 capture 'this' via the default capture.
419 (maybe_resolve_dummy): Likewise.
420 * cp-tree.h: Adjust prototypes.
421 * call.c, semantics.c: Change callers of these functions.
422 * call.c (build_new_method_call_1): Use the actual 'this' that
423 would be potentially captured for the overload resolution, instead
424 of the dummy object.
425
426 2014-05-09 Paolo Carlini <paolo.carlini@oracle.com>
427
428 * pt.c (convert_nontype_argument_function): Add tsubst_flags_t
429 parameter.
430 (convert_nontype_argument): Adjust calls.
431 (coerce_template_parameter_pack): Add missing complain & tf_error
432 check.
433
434 2014-05-09 Jason Merrill <jason@redhat.com>
435
436 DR 587
437 PR c++/51317
438 * call.c (build_conditional_expr_1, conditional_conversion): Handle
439 non-class lvalues and xvalues that differ only in cv-qualifiers.
440
441 DR 5
442 PR c++/60019
443 * call.c (build_user_type_conversion_1): The copy-init temporary
444 is cv-unqualified.
445
446 PR c++/58714
447 * tree.c (stabilize_expr): A stabilized prvalue is an xvalue.
448
449 PR c++/54348
450 * call.c (build_conditional_expr_1): If overload resolution finds
451 no match, just say "different types".
452
453 PR c++/32019
454 * call.c (build_conditional_expr_1): Improve ambiguity diagnostic.
455
456 PR c++/22434
457 * call.c (build_conditional_expr_1): Don't try to pool cv-quals
458 if we didn't find a conversion.
459 Don't accept a bad conversion too early.
460
461 2014-05-08 Paolo Carlini <paolo.carlini@oracle.com>
462
463 PR c++/13981
464 * typeck.c (convert_for_assignment): Provide an inform for pointers
465 to incomplete class types.
466
467 2014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
468
469 PR c++/61083
470 * pt.c (convert_nontype_argument): Protect all the error calls
471 with complain & tf_error.
472
473 2014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
474
475 PR c++/61080
476 * pt.c (instantiate_decl): Avoid generating the body of a
477 deleted function.
478
479 2014-05-06 Paolo Carlini <paolo.carlini@oracle.com>
480
481 PR c++/60999
482 * pt.c (maybe_begin_member_template_processing): Use
483 uses_template_parms.
484
485 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
486 Mike Stump <mikestump@comcast.net>
487 Richard Sandiford <rdsandiford@googlemail.com>
488
489 * call.c: Include wide-int.h.
490 (type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
491 (convert_for_arg_passing): Likewise.
492 * class.c: Include wide-int.h.
493 (walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT.
494 (end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
495 (include_empty_classes): Likewise
496 (layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT.
497 * cvt.c: Include wide-int.h.
498 (ignore_overflows): Use wide_int_to_tree.
499 * decl.c: Include wide-int.h.
500 (check_array_designated_initializer): Use wide-int interfaces.
501 (compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT.
502 (finish_enum_value_list): Use signop.
503 (build_enumerator): Use wide-int interfaces.
504 * init.c: Include wide-int.h.
505 (build_new_1): Use wide-int interfaces.
506 * mangle.c: Include wide-int.h.
507 (write_integer_cst): Use wide-int interfaces.
508 (write_array_type): Likewise.
509 * tree.c: Include wide-int.h.
510 (cp_tree_equal): Use tree_int_cst_equal.
511 * typeck2.c: Include wide-int.h.
512 (process_init_constructor_array): Use wide-int interfaces.
513
514 2014-05-03 Paolo Carlini <paolo.carlini@oracle.com>
515
516 PR c++/58582
517 * decl.c (grokfndecl): Check duplicate_decls return value for
518 error_mark_node.
519 * pt.c (instantiate_decl): A deleted function is defined.
520
521 2014-05-02 Jason Merrill <jason@redhat.com>
522
523 * decl2.c (vague_linkage_p): Local statics have vague linkage.
524
525 PR c++/60992
526 * lambda.c (lambda_capture_field_type): Wrap anything dependent
527 other than 'this'.
528 (add_capture): Check for VLA before calling it.
529 * semantics.c (is_this_parameter): Accept any 'this' parameter, not
530 just the current one. Make non-static.
531 * cp-tree.h: Declare it.
532 * pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if
533 the operand was static or constant.
534
535 2014-05-02 Marek Polacek <polacek@redhat.com>
536
537 * typeck.c (maybe_warn_about_returning_address_of_local): Separate
538 warning_at calls.
539
540 2014-05-01 Marek Polacek <polacek@redhat.com>
541
542 PR c/43395
543 * typeck.c (maybe_warn_about_returning_address_of_local): Distinguish
544 between label and variable when warning about returning local address.
545
546 2014-04-30 Jason Merrill <jason@redhat.com>
547
548 PR c++/60980
549 * init.c (build_value_init): Don't try to call an array constructor.
550
551 PR c++/60951
552 * typeck2.c (massage_init_elt): Use maybe_constant_init.
553
554 2014-04-30 Marek Polacek <polacek@redhat.com>
555
556 * typeck.c (cp_build_binary_op): Call ubsan_instrument_division
557 even when SANITIZE_FLOAT_DIVIDE is on. Set doing_div_or_mod even
558 for non-integer types.
559
560 2014-04-29 Jason Merrill <jason@redhat.com>
561
562 DR 1351
563 Represent the unevaluated exception specification of an implicitly
564 declared or deleted function with a simple placeholder, not a list
565 of functions.
566 * cp-tree.h (UNEVALUATED_NOEXCEPT_SPEC_P): New.
567 * except.c (unevaluated_noexcept_spec): New.
568 * class.c (deduce_noexcept_on_destructor): Use it.
569 * decl.c (check_redeclaration_exception_specification): Call
570 maybe_instantiate_noexcept.
571 (duplicate_decls): Call it before merge_types.
572 (start_preparsed_function): Call maybe_instantiate_noexcept.
573 * decl2.c (mark_used): Call maybe_instantiate_noexcept earlier.
574 * init.c (get_nsdmi): Factor out of perform_member_init.
575 * method.c (process_subob_fn): Call maybe_instantiate_noexcept.
576 (walk_field_subobs): Consider NSDMI for EH spec.
577 (get_defaulted_eh_spec): New.
578 (implicitly_declare_fn): Use unevaluated_noexcept_spec.
579 (defaulted_late_check): Defer EH checking in non-template classes.
580 (after_nsdmi_defaulted_late_checks): New.
581 * parser.c (cp_parser_class_specifier_1): Use it.
582 (unparsed_classes): New macro.
583 * parser.h (cp_unparsed_functions_entry_d): Add classes field.
584 * pt.c (maybe_instantiate_noexcept): Use get_defaulted_eh_spec.
585 Remove list-of-functions handling.
586 * typeck2.c (merge_exception_specifiers): Remove list-of-functions
587 handling and FN parameter.
588 * typeck.c (merge_types): Adjust.
589
590 2014-04-28 Paolo Carlini <paolo.carlini@oracle.com>
591
592 PR c++/59120
593 * parser.c (cp_parser_alias_declaration): Check return value of
594 cp_parser_require.
595
596 2014-04-24 Jakub Jelinek <jakub@redhat.com>
597
598 * parser.c (cp_parser_omp_atomic): Allow seq_cst before
599 atomic-clause, allow comma in between atomic-clause and
600 seq_cst.
601
602 2014-04-24 Marc Glisse <marc.glisse@inria.fr>
603
604 PR libstdc++/43622
605 * rtti.c (emit_support_tinfos): Do not iterate on
606 registered_builtin_types (partial revert).
607
608 2014-04-23 Dinar Temirbulatov <dtemirbulatov@gmail.com>
609
610 PR c++/57958
611 * semantics.c (apply_deduced_return_type): Complete non-void type
612 before estimating whether the type is aggregate.
613
614 2014-04-22 Marc Glisse <marc.glisse@inria.fr>
615
616 PR libstdc++/43622
617 * rtti.c (emit_support_tinfo_1): New function, extracted from
618 emit_support_tinfos.
619 (emit_support_tinfos): Call it and iterate on registered_builtin_types.
620
621 2014-04-22 Jakub Jelinek <jakub@redhat.com>
622
623 PR c/59073
624 * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
625 fails, don't set OM_PARALLEL_COMBINED and return NULL.
626
627 2014-04-18 Jason Merrill <jason@redhat.com>
628
629 DR 1571
630 * call.c (reference_binding): Recurse on user-defined conversion.
631
632 PR c++/60872
633 * call.c (standard_conversion): Don't try to apply restrict to void.
634
635 2014-04-16 Marc Glisse <marc.glisse@inria.fr>
636
637 * decl.c (reshape_init_r): Handle a single element of vector type.
638
639 2014-04-16 Patrick Palka <patrick@parcs.ath.cx>
640
641 PR c++/60765
642 * decl2.c (cplus_decl_attributes): Handle
643 pointer-to-member-function declarations.
644
645 2014-04-16 Patrick Palka <patrick@parcs.ath.cx>
646
647 PR c++/60764
648 * call.c (build_user_type_coversion): Use build_dummy_object
649 to create the placeholder object for a constructor method call.
650 (build_special_member_call): Likewise.
651 (build_over_call): Check for the placeholder object with
652 is_dummy_object.
653 (build_new_method_call_1): Likewise. Don't attempt to resolve
654 a dummy object for a constructor method call.
655
656 2014-04-16 Paul Pluzhnikov <ppluzhnikov@google.com>
657
658 PR c++/59295
659 * friend.c (add_friend, make_friend_class): Move repeated friend
660 warning under Wredundant_decls.
661
662 2014-04-15 Paolo Carlini <paolo.carlini@oracle.com>
663
664 * decl.c (duplicate_decls): Remove redundant TYPE_NAME use.
665 * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
666 (do_class_using_decl): Likewise.
667 * mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING.
668
669 2014-04-15 Jakub Jelinek <jakub@redhat.com>
670
671 PR plugins/59335
672 * Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h.
673
674 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
675
676 * cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
677
678 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
679
680 * pt.c (mark_template_parm): Use template_parm_level_and_index.
681
682 2014-04-11 Jason Merrill <jason@redhat.com>
683
684 * parser.h (struct cp_token): Rename ambiguous_p to error_reported.
685 * parser.c: Adjust.
686 (cp_lexer_get_preprocessor_token): Always clear it.
687 (cp_parser_lambda_expression): Use it to avoid duplicate diagnostics.
688
689 DR 1467
690 PR c++/51747
691 * decl.c (reshape_init_r): Handle a single element of class type.
692
693 DR 1338
694 * decl.c (cxx_init_decl_processing): Set DECL_IS_MALLOC on
695 built-in operator new.
696
697 2014-04-11 Paolo Carlini <paolo.carlini@oracle.com>
698
699 PR c++/58600
700 * name-lookup.c (parse_using_directive): Return early if the
701 attribs argument is error_mark_node; use get_attribute_name.
702
703 2014-04-11 Jason Merrill <jason@redhat.com>
704
705 DR 1030
706 PR c++/51253
707 * cp-tree.h (CALL_EXPR_LIST_INIT_P): New.
708 * call.c (struct z_candidate): Add flags field.
709 (add_candidate): Add flags parm.
710 (add_function_candidate, add_conv_candidate, build_builtin_candidate)
711 (add_template_candidate_real): Pass it.
712 (build_over_call): Set CALL_EXPR_LIST_INIT_P.
713 * tree.c (build_aggr_init_expr): Copy it.
714 * semantics.c (simplify_aggr_init_expr): Preevaluate args if it's set.
715
716 2014-04-10 Richard Biener <rguenther@suse.de>
717 Jakub Jelinek <jakub@redhat.com>
718
719 PR ipa/60761
720 * error.c (dump_decl) <case FUNCTION_DECL>: If
721 DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not,
722 recurse on DECL_ABSTRACT_ORIGIN instead of printing
723 <built-in>.
724
725 2014-04-09 Fabien Chêne <fabien@gcc.gnu.org>
726
727 * pt.c (check_template_variable): Check for the return of pedwarn
728 before emitting a note.
729 * parser.c (cp_parser_lambda_introducer): Likewise.
730
731 2014-04-08 Paolo Carlini <paolo.carlini@oracle.com>
732
733 PR c++/59115
734 * pt.c (process_template_parm): For an invalid non-type parameter
735 only set TREE_TYPE to error_mark_node.
736 (push_inline_template_parms_recursive, comp_template_parms,
737 redeclare_class_template, coerce_template_template_parm,
738 coerce_template_template_parms, unify): Use error_operand_p.
739
740 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
741
742 * class.c (check_bases_and_members): Warn about non-virtual dtors
743 in public bases only. Check warn_ecpp before complaining about
744 non-polymorphic bases.
745
746 2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
747
748 * decl.c (duplicate_decls): Check for the return of warning_at
749 before emitting a note.
750 (warn_misplaced_attr_for_class_type): Likewise.
751 (check_tag_decl): Likewise.
752
753 2014-04-04 Paolo Carlini <paolo.carlini@oracle.com>
754
755 PR c++/58207
756 * semantics.c (sort_constexpr_mem_initializers): Robustify loop.
757
758 2014-04-04 Patrick Palka <patrick@parcs.ath.cx>
759
760 PR c++/44613
761 * semantics.c (add_stmt): Set STATEMENT_LIST_HAS_LABEL.
762 * decl.c (cp_finish_decl): Create a new BIND_EXPR before
763 instantiating a variable-sized type.
764
765 PR c++/21113
766 * decl.c (decl_jump_unsafe): Consider variably-modified decls.
767
768 2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
769
770 * class.c (find_abi_tags_r): Check for the return of warning
771 before emitting a note.
772 (one_inherited_ctor): Likewise.
773
774 2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
775
776 * decl.c (duplicate_decls): Check for the return of permerror
777 before emitting a note.
778
779 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
780
781 * class.c (accessible_nvdtor_p): New.
782 (check_bases): Don't check base destructor here ...
783 (check_bases_and_members): ... check them here. Trigger on
784 Wnon-virtual-dtor flag.
785 (finish_struct_1): Use accessible_nvdtor_p.
786
787 2014-04-01 Jason Merrill <jason@redhat.com>
788
789 * pt.c (process_partial_specialization): Say "not deducible"
790 rather than "not used". Use inform.
791
792 PR c++/60374
793 * pt.c (coerce_template_parms): Check that the pack expansion
794 pattern works with the first matching parameter.
795
796 2014-04-01 Fabien Chêne <fabien@gcc.gnu.org>
797
798 * init.c (perform_member_init): Homogenize uninitialized
799 diagnostics.
800
801 2014-04-01 Jason Merrill <jason@redhat.com>
802
803 PR c++/60708
804 * call.c (build_array_conv): Call complete_type.
805
806 PR c++/60713
807 * typeck2.c (PICFLAG_SIDE_EFFECTS): New.
808 (picflag_from_initializer): Return it.
809 (process_init_constructor): Handle it.
810
811 PR c++/60642
812 * decl2.c (is_late_template_attribute): Don't defer abi_tag.
813 * mangle.c (write_unqualified_name): Fix abi_tag on templates.
814 * pt.c (get_template_info): Handle NAMESPACE_DECL.
815 (most_general_template): Handle more kinds of template.
816 * tree.c (handle_abi_tag_attribute): Ignore abi_tag on template
817 instantiations and specializations.
818
819 2014-03-31 Patrick Palka <patrick@parcs.ath.cx>
820
821 PR c++/44859
822 * typeck.c (maybe_warn_about_returning_address_of_local): Unwrap
823 COMPONENT_REFs and ARRAY_REFs sooner.
824
825 2014-03-29 Adam Butcher <adam@jessamine.co.uk>
826
827 PR c++/60626
828 * parser.c (cp_parser_init_declarator): Handle erroneous generic type
829 usage in non-functions with pushed scope.
830
831 2014-03-28 Adam Butcher <adam@jessamine.co.uk>
832
833 PR c++/60573
834 * name-lookup.h (cp_binding_level): New transient field defining_class_p
835 to indicate whether a scope is in the process of defining a class.
836 * semantics.c (begin_class_definition): Set defining_class_p.
837 * name-lookup.c (leave_scope): Reset defining_class_p.
838 * parser.c (synthesize_implicit_template_parm): Use cp_binding_level::
839 defining_class_p rather than TYPE_BEING_DEFINED as the predicate for
840 unwinding to class-defining scope to handle the erroneous definition of
841 a generic function of an arbitrarily nested class within an enclosing
842 class.
843
844 2014-03-26 Fabien Chêne <fabien@gcc.gnu.org>
845
846 PR c++/52369
847 * method.c (walk_field_subobs): Improve the diagnostic
848 locations for both REFERENCE_TYPEs and non-static const members.
849 * init.c (diagnose_uninitialized_cst_or_ref_member): Use %q#D
850 instead of %qD to be consistent with the c++11 diagnostic.
851
852 2014-03-25 Jason Merrill <jason@redhat.com>
853
854 PR c++/60566
855 PR c++/58678
856 * class.c (build_vtbl_initializer): Handle abstract dtors here.
857 * search.c (get_pure_virtuals): Not here.
858
859 PR c++/60375
860 * parser.c (cp_parser_lambda_expression): Don't parse the body of
861 a lambda in unevaluated context.
862
863 PR c++/60628
864 * decl.c (create_array_type_for_decl): Complain about array of auto.
865
866 2014-03-25 Jakub Jelinek <jakub@redhat.com>
867
868 PR c++/60331
869 * semantics.c (potential_constant_expression_1): Handle
870 DECL_EXPR.
871
872 2014-03-24 Adam Butcher <adam@jessamine.co.uk>
873
874 PR c++/60627
875 * parser.c (cp_parser_parameter_declaration_clause): Prevent 'auto' from
876 introducing an implicit function template parameter within an explicit
877 instantiation.
878
879 2014-03-22 Jason Merrill <jason@redhat.com>
880
881 PR c++/60574
882 * decl.c (grokdeclarator): Change permerror about 'virtual auto'
883 to error.
884
885 2014-03-21 Paolo Carlini <paolo.carlini@oracle.com>
886
887 PR c++/60384
888 * name-lookup.c (push_class_level_binding_1): Check identifier_p
889 on the name argument.
890
891 2014-03-20 Jakub Jelinek <jakub@redhat.com>
892
893 PR c++/60572
894 * init.c (build_zero_init_1): Ignore fields with error_mark_node
895 type.
896
897 2014-03-19 Paolo Carlini <paolo.carlini@oracle.com>
898
899 PR c++/51474
900 * call.c (build_new_method_call_1): Handle pure virtuals called by
901 NSDMIs too.
902
903 2014-03-17 Adam Butcher <adam@jessamine.co.uk>
904
905 PR c++/60390
906 * parser.c (cp_parser_member_declaration): Don't allow
907 finish_fully_implicit_template to consider friend declarations to be
908 class member templates.
909 (synthesize_implicit_template_parm): Handling winding back through class
910 scope to the class being defined in order to inject a template argument
911 list.
912
913 PR c++/60391
914 * parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic
915 function scope as per cp_parser_skip_to_end_of_statement.
916
917 2014-03-17 Paolo Carlini <paolo.carlini@oracle.com>
918
919 PR c++/59571
920 * typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae.
921
922 2014-03-14 Jason Merrill <jason@redhat.com>
923
924 PR c++/60532
925 PR c++/58678
926 * search.c (get_pure_virtuals): Handle abstract dtor here.
927 (dfs_get_pure_virtuals): Not here.
928
929 PR c++/58678
930 * search.c (dfs_get_pure_virtuals): Treat the destructor of an
931 abstract class as pure.
932
933 2014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
934
935 PR c++/60383
936 * pt.c (maybe_process_partial_specialization): Check return value
937 of check_specialization_namespace.
938
939 2014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
940
941 PR c++/60254
942 * semantics.c (finish_static_assert): Call cxx_constant_value only
943 if require_potential_rvalue_constant_expression returns true.
944
945 2014-03-11 Paolo Carlini <paolo.carlini@oracle.com>
946
947 PR c++/60389
948 * method.c (get_inherited_ctor): New.
949 * cp-tree.h (get_inherited_ctor): Declare it.
950 * semantics.c (is_valid_constexpr_fn): Use it.
951
952 2014-03-10 Jason Merrill <jason@redhat.com>
953
954 PR c++/60367
955 * call.c (convert_default_arg): Remove special handling for
956 CONSTRUCTOR.
957
958 PR c++/53492
959 * parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
960 when deciding whether to call push_template_decl for a member class.
961 * pt.c (push_template_decl_real): Return after wrong levels error.
962
963 2014-03-08 Adam Butcher <adam@jessamine.co.uk>
964
965 PR c++/60033
966 * pt.c (tsubst_copy): When retrieving a capture pack from a generic
967 lambda, remove the lambda's own template argument list prior to fetching
968 the specialization.
969
970 PR c++/60393
971 * parser.c (cp_parser_parameter_declaration_clause): Move generic
972 function template unwinding on error into a more general location, ...
973 (cp_parser_skip_to_end_of_statement): ... here.
974
975 2014-03-07 Jason Merrill <jason@redhat.com>
976
977 * Make-lang.in (check_g++_parallelize): Split dg.exp.
978
979 * parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
980 we're in a trailing return type.
981
982 * typeck.c (comp_template_parms_position): 'auto' and
983 'decltype(auto)' are different from real template parms.
984
985 * parser.c (cp_parser_using_declaration): Consume the semicolon
986 after bare parameter pack error.
987
988 * cp-tree.h (REF_PARENTHESIZED_P): New.
989 * semantics.c (force_paren_expr): Set it.
990 * pt.c (do_auto_deduction): Check it.
991 (tsubst) [COMPONENT_REF]: Copy it.
992 * typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
993
994 * decl.c (create_array_type_for_decl): Only warn about invalid
995 C++1y VLA if flag_iso or warn_vla>0.
996 (grokdeclarator): Likewise.
997 * pt.c (tsubst): Likewise.
998 * semantics.c (finish_decltype_type): Likewise.
999 * typeck.c (cxx_sizeof_or_alignof_type): Likewise.
1000 (cp_build_addr_expr_1): Likewise.
1001 * init.c (build_new_1): Improve diagnostics.
1002
1003 2014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
1004
1005 PR c++/58609
1006 * decl.c (check_initializer): Return NULL_TREE after error;
1007 consistently use inform.
1008
1009 2014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
1010
1011 * decl.c (check_initializer): Remove dead code.
1012
1013 2014-03-06 Marek Polacek <polacek@redhat.com>
1014
1015 PR c/60197
1016 * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
1017 of checking tree code.
1018
1019 2014-03-06 Paolo Carlini <paolo.carlini@oracle.com>
1020
1021 * parser.c (cp_lexer_set_source_position): New.
1022 (cp_parser_mem_initializer): Use it.
1023 (cp_parser_postfix_open_square_expression): Likewise.
1024 (cp_parser_parenthesized_expression_list): Likewise.
1025 (cp_parser_new_initializer): Likewise.
1026 (cp_parser_jump_statement): Likewise.
1027 (cp_parser_initializer): Likewise.
1028 (cp_parser_functional_cast): Likewise.
1029
1030 2014-03-05 Jason Merrill <jason@redhat.com>
1031
1032 PR c++/60409
1033 * semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
1034 dependent expression.
1035
1036 PR c++/60361
1037 * parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
1038 if re-parsing might succeed.
1039 * semantics.c (finish_id_expression): Use of a parameter outside
1040 the function body is a parse error.
1041
1042 * parser.c (cp_parser_mem_initializer): Set input_location
1043 properly for init-list warning.
1044 (cp_parser_postfix_open_square_expression): Likewise.
1045 (cp_parser_parenthesized_expression_list): Likewise.
1046 (cp_parser_new_initializer): Likewise.
1047 (cp_parser_jump_statement): Likewise.
1048 (cp_parser_initializer): Likewise.
1049 (cp_parser_functional_cast): Likewise.
1050
1051 2014-03-04 Jason Merrill <jason@redhat.com>
1052
1053 PR c++/60417
1054 * typeck2.c (process_init_constructor_record): Set
1055 CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
1056
1057 PR c++/60415
1058 PR c++/54359
1059 * parser.c (cp_parser_direct_declarator): Set declarator to
1060 cp_error_declarator on invalid qualified-id.
1061
1062 2014-03-04 Paolo Carlini <paolo.carlini@oracle.com>
1063
1064 PR c++/60376
1065 * parser.c (cp_parser_using_declaration): Early return when
1066 cp_parser_nested_name_specifier errors out.
1067
1068 2014-03-01 Adam Butcher <adam@jessamine.co.uk>
1069
1070 PR c++/60377
1071 * parser.c (cp_parser_parameter_declaration_clause): Unwind generic
1072 function scope on parse error in function parameter list.
1073
1074 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
1075
1076 * method.c (implicitly_declare_fn): Remove redundant
1077 DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
1078 * semantics.c (is_instantiation_of_constexpr): Likewise.
1079 * error.c (dump_function_decl): Likewise.
1080
1081 2014-03-01 Jason Merrill <jason@redhat.com>
1082
1083 PR c++/60379
1084 * semantics.c (begin_maybe_infinite_loop): Use
1085 fold_non_dependent_expr_sfinae.
1086
1087 2014-02-28 Jason Merrill <jason@redhat.com>
1088
1089 PR c++/58845
1090 * typeck.c (cp_build_binary_op): Sorry on vector&&vector.
1091
1092 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
1093
1094 PR c++/58610
1095 * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
1096 * call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
1097 * lambda.c (maybe_add_lambda_conv_op): Likewise.
1098
1099 2014-02-27 Paolo Carlini <paolo.carlini@oracle.com>
1100
1101 PR c++/60253
1102 * call.c (convert_arg_to_ellipsis): Return error_mark_node after
1103 error_at.
1104
1105 2014-02-27 Jason Merrill <jason@redhat.com>
1106
1107 PR c++/60353
1108 PR c++/55877
1109 * decl2.c (tentative_decl_linkage): Don't mess with functions that
1110 are not yet defined.
1111
1112 2014-02-26 Jason Merrill <jason@redhat.com>
1113
1114 PR c++/60347
1115 PR lto/53808
1116 * class.c (clone_function_decl): Don't note_vague_linkage_fn.
1117 * init.c (build_vtbl_address): Do it here.
1118
1119 PR c++/59231
1120 PR c++/11586
1121 PR c++/14710
1122 PR c++/57132
1123 * pt.c (struct warning_sentinel): New.
1124 (tsubst_copy_and_build): Use it instead of
1125 c_inhibit_evaluation_warnings.
1126 * typeck.c (maybe_warn_about_useless_cast): Remove
1127 c_inhibit_evaluation_warnings check.
1128
1129 PR c++/54440
1130 * pt.c (get_template_parm_index): New.
1131 (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
1132 (process_template_parm): Allow bare packs in template template
1133 parm template parms.
1134 (coerce_template_parameter_pack): Handle fixed template template
1135 parm packs and fixed packs not at the end of the parm list.
1136 (coerce_template_parms): Handle template parm packs not at the end
1137 of the parm list.
1138 (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
1139
1140 PR c++/60182
1141 * pt.c (unify): Ignore alias templates when deducing a template
1142 template parameter.
1143
1144 PR c++/60345
1145 Revert:
1146 DR 1571
1147 * call.c (reference_binding): Recurse on user-defined conversion.
1148 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
1149
1150 2014-02-25 Jason Merrill <jason@redhat.com>
1151
1152 DR 1571
1153 * call.c (reference_binding): Recurse on user-defined conversion.
1154 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
1155
1156 * call.c (print_conversion_rejection): Handle n_arg of -2.
1157 (build_user_type_conversion_1): Pass it.
1158
1159 PR c++/55877
1160 * decl2.c (no_linkage_error): Handle C++98 semantics.
1161 (reset_type_linkage): Move from decl.c.
1162 (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
1163 (bt_reset_linkage_2, reset_decl_linkage): New.
1164 (tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
1165 (cp_write_global_declarations): Move condition into no_linkage_error.
1166 * decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
1167 * semantics.c (expand_or_defer_fn_1): Factor out
1168 tentative_decl_linkage.
1169 * cp-tree.h: Adjust.
1170
1171 * decl2.c (finish_static_data_member_decl): Diagnose static data
1172 member in unnamed class.
1173 * class.c (finish_struct_anon_r): Avoid redundant diagnostic.
1174
1175 PR lto/53808
1176 * class.c (clone_function_decl): Call note_vague_linkage_fn for
1177 defaulted virtual dtor.
1178
1179 DR 1286
1180 PR c++/60328
1181 * pt.c (get_underlying_template): Fix equivalence calculation.
1182
1183 2014-02-25 Adam Butcher <adam@jessamine.co.uk>
1184
1185 PR c++/60311
1186 * parser.c (function_being_declared_is_template_p): Return false when
1187 processing a template parameter list.
1188 (cp_parser_parameter_declaration_clause): Don't set
1189 auto_is_implicit_function_template_parm_p when processing a
1190 template parameter list.
1191
1192 * parser.c (synthesize_implicit_template_parm): Inject new template
1193 argument list appropriately when a generic member function
1194 of a class template is declared out-of-line.
1195
1196 PR c++/60065
1197 * parser.c (cp_parser_direct_declarator): Don't save and
1198 restore num_template_parameter_lists around call to
1199 cp_parser_parameter_declaration_list.
1200 (function_being_declared_is_template_p): New predicate.
1201 (cp_parser_parameter_declaration_list): Use
1202 function_being_declared_is_template_p as predicate for
1203 inspecting current function template parameter list length
1204 rather than num_template_parameter_lists.
1205
1206 2014-02-24 Jason Merrill <jason@redhat.com>
1207
1208 PR c++/60146
1209 * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
1210 DECL_EXPR initialize a non-class iterator.
1211
1212 PR c++/60312
1213 * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
1214
1215 2014-02-21 Jason Merrill <jason@redhat.com>
1216
1217 PR c++/58170
1218 * parser.c (cp_parser_type_name): Always check dependency.
1219 (cp_parser_type_specifier_seq): Call
1220 cp_parser_parse_and_diagnose_invalid_type_name.
1221
1222 PR c++/60108
1223 * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
1224
1225 PR c++/60185
1226 * parser.c (cp_parser_default_argument): Clear
1227 current_class_ptr/current_class_ref like tsubst_default_argument.
1228
1229 PR c++/60252
1230 * lambda.c (maybe_resolve_dummy): Check lambda_function rather
1231 than current_binding_level.
1232
1233 PR c++/60186
1234 * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
1235
1236 PR c++/60187
1237 * parser.c (cp_parser_enum_specifier): Call
1238 check_for_bare_parameter_packs.
1239
1240 PR c++/59347
1241 * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
1242 erroneous typedef.
1243
1244 PR c++/60241
1245 * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
1246 of the partial instantiation, not the most general template.
1247 (maybe_process_partial_specialization): Reassign everything on
1248 that list.
1249
1250 PR c++/60216
1251 * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
1252 (check_explicit_specialization): Don't clone.
1253
1254 PR c++/60219
1255 * pt.c (coerce_template_parms): Bail if argument packing fails.
1256
1257 PR c++/60224
1258 * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
1259 Don't get confused by a CONSTRUCTOR that already has a type.
1260
1261 PR c++/60227
1262 * call.c (build_array_conv): Don't crash on VLA.
1263
1264 PR c++/60248
1265 * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
1266
1267 PR c++/60252
1268 * lambda.c (maybe_resolve_dummy): Don't try to capture this
1269 in declaration context.
1270
1271 DR 1591
1272 PR c++/60051
1273 * pt.c (unify): Only unify if deducible. Handle 0-length list.
1274
1275 PR c++/60250
1276 * parser.c (cp_parser_direct_declarator): Don't wrap a
1277 type-dependent expression in a NOP_EXPR.
1278
1279 PR c++/60251
1280 * lambda.c (is_normal_capture_proxy): Handle VLA capture.
1281
1282 PR c++/60167
1283 PR c++/60222
1284 PR c++/58606
1285 * parser.c (cp_parser_template_argument): Restore dereference.
1286 * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
1287 (process_partial_specialization): Handle deref.
1288 (unify): Likewise.
1289
1290 2014-02-21 Adam Butcher <adam@jessamine.co.uk>
1291
1292 PR c++/60052
1293 PR c++/60053
1294 * parser.c (cp_parser_parameter_declaration_list): Correctly reset
1295 implicit_template_scope upon leaving an out-of-line generic member
1296 function definition.
1297
1298 2014-02-20 Kai Tietz <ktietz@redhat.com>
1299
1300 PR c++/58873
1301 * parser.c (cp_parser_functional_cast): Treat NULL_TREE
1302 valued type argument as error_mark_node.
1303
1304 PR c++/58835
1305 * semantics.c (finish_fname): Handle error_mark_node.
1306
1307 2014-02-19 Jason Merrill <jason@redhat.com>
1308
1309 PR c++/60046
1310 * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
1311 spec from template context.
1312
1313 2014-02-19 Jakub Jelinek <jakub@redhat.com>
1314
1315 PR debug/56563
1316 * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
1317 FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
1318
1319 PR c++/60267
1320 * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
1321
1322 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
1323
1324 PR c++/60225
1325 * semantics.c (ensure_literal_type_for_constexpr_object): Use
1326 strip_array_types.
1327
1328 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
1329
1330 PR c++/60215
1331 * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
1332 During error recovery allow_non_constant may be false.
1333
1334 2014-02-18 Adam Butcher <adam@jessamine.co.uk>
1335
1336 PR c++/60190
1337 * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
1338 scope whenever a template parameter list has been started, independent
1339 of whether the function call operator was well-formed or not.
1340
1341 PR c++/60064
1342 * parser.c (cp_parser_member_declaration): Pop fully implicit template
1343 scope for generic friend declarations as well as for non-friends.
1344
1345 2014-02-12 Paolo Carlini <paolo.carlini@oracle.com>
1346
1347 PR c++/60047
1348 * method.c (implicitly_declare_fn): A constructor of a class with
1349 virtual base classes isn't constexpr (7.1.5p4).
1350
1351 2014-02-05 Jan Hubicka <hubicka@ucw.cz
1352
1353 * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
1354
1355 2014-02-05 Jakub Jelinek <jakub@redhat.com>
1356
1357 PR c++/58703
1358 * parser.c (cp_parser_omp_declare_reduction): Save and free
1359 declarator_obstack.
1360
1361 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
1362
1363 PR c++/53017
1364 PR c++/59211
1365 * tree.c (handle_init_priority_attribute): Call default_conversion on
1366 the attribute argument.
1367
1368 2014-02-03 Paolo Carlini <paolo.carlini@oracle.com>
1369
1370 PR c++/58871
1371 * method.c (synthesized_method_walk): If vbases is non-null but
1372 is_empty is true, likewise don't worry about the virtual bases.
1373
1374 2014-02-01 Paolo Carlini <paolo.carlini@oracle.com>
1375
1376 PR c++/51219
1377 * typeck2.c (process_init_constructor_record): Just skip unnamed
1378 bit-fields.
1379
1380 2014-01-31 Jason Merrill <jason@redhat.com>
1381
1382 PR c++/59469
1383 * pt.c (mark_decl_instantiated): Call mark_needed.
1384
1385 PR c++/58672
1386 * decl2.c (handle_tls_init): Handle null init fn.
1387
1388 PR c++/55800
1389 * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
1390
1391 2014-01-31 Paolo Carlini <paolo.carlini@oracle.com>
1392
1393 PR c++/59082
1394 * class.c (build_vfield_ref): Early return error_mark_node if
1395 TYPE_VFIELD (type) is null.
1396 (build_base_path): Check return value of build_vfield_ref.
1397
1398 2014-01-31 Jason Merrill <jason@redhat.com>
1399
1400 PR c++/59646
1401 * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
1402 [ck_list]: Check for error_mark_node.
1403 (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
1404
1405 PR c++/57043
1406 * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
1407 during partial ordering.
1408
1409 2014-01-31 Marek Polacek <polacek@redhat.com>
1410
1411 PR c/59963
1412 * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
1413
1414 2014-01-30 Jason Merrill <jason@redhat.com>
1415
1416 PR c++/57899
1417 * cp-tree.h (struct saved_scope): Add x_local_specializations.
1418 (local_specializations): New macro.
1419 * pt.c (local_specializations): Remove variable.
1420
1421 2014-01-30 Richard Sandiford <rdsandiford@googlemail.com>
1422
1423 PR c++/58708
1424 * parser.c (make_string_pack): Use double_int::from_buffer.
1425
1426 2014-01-30 Marek Polacek <polacek@redhat.com>
1427
1428 PR c/59940
1429 * typeck.c (build_ptrmemfunc1): Call convert_and_check with
1430 input_location.
1431 * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
1432 with input_location.
1433 * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
1434 loc parameter.
1435
1436 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
1437
1438 PR c++/58843
1439 * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
1440
1441 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
1442
1443 PR c++/58649
1444 * pt.c (lookup_template_class_1): Check start_enum return value
1445 for error_mark_node.
1446
1447 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
1448
1449 * decl.c (duplicate_decls, typename_hash, typename_compare):
1450 Use TYPE_IDENTIFIER.
1451 * error.c (dump_type): Likewise.
1452 * mangle.c (dump_substitution_candidates): Likewise.
1453
1454 2014-01-30 Jason Merrill <jason@redhat.com>
1455
1456 PR c++/59633
1457 * decl2.c (attributes_naming_typedef_ok): New.
1458 * cp-tree.h: Declare it.
1459 * decl.c (grokdeclarator): Check it.
1460 * tree.c (no_linkage_check): Handle VECTOR_TYPE.
1461
1462 2014-01-29 Jason Merrill <jason@redhat.com>
1463
1464 PR c++/59707
1465 * call.c (add_builtin_candidate): Catch dependent types.
1466
1467 PR c++/59989
1468 * pt.c (expand_template_argument_pack): Correct
1469 non_default_args_count calculation.
1470
1471 PR c++/58466
1472 * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
1473
1474 PR c++/59956
1475 * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
1476 have a friend template in a class template.
1477 * pt.c (tsubst_friend_function): Look through it.
1478 (push_template_decl_real): A friend member template is
1479 primary.
1480
1481 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1482
1483 PR c++/58846
1484 * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
1485 == error_mark_node.
1486
1487 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1488
1489 PR c++/58674
1490 * pt.c (instantiate_template_1): Check for error_mark_node the second
1491 argument too.
1492
1493 2014-01-29 Jason Merrill <jason@redhat.com>
1494
1495 PR c++/59916
1496 * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
1497 cdtor_returns_this case.
1498
1499 PR c++/59315
1500 * decl.c (cxx_maybe_build_cleanup): Call mark_used.
1501
1502 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1503
1504 PR c++/58702
1505 * semantics.c (finish_omp_reduction_clause): Check type for
1506 error_mark_node.
1507
1508 2014-01-28 Jason Merrill <jason@redhat.com>
1509
1510 PR c++/59791
1511 * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
1512 (tsubst_copy): Use it if lookup fails.
1513
1514 PR c++/59818
1515 * pt.c (tsubst_function_type): Make sure we keep the same function
1516 quals.
1517
1518 PR c++/58701
1519 * semantics.c (build_anon_member_initialization): Stop walking
1520 when we run out of COMPONENT_REFs.
1521
1522 PR c++/58632
1523 * decl.c (lookup_and_check_tag): Ignore template parameters if
1524 scope == ts_current.
1525 * pt.c (check_template_shadow): Don't complain about the injected
1526 class name.
1527
1528 * decl.c (duplicate_decls): Tweak.
1529
1530 PR c++/53756
1531 * mangle.c (write_unqualified_name): Handle operator auto.
1532
1533 2014-01-27 Jason Merrill <jason@redhat.com>
1534
1535 PR c++/59823
1536 Core DR 1138
1537 * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
1538 list-initialization. A conversion to rvalue ref that involves
1539 an lvalue-rvalue conversion is bad.
1540 (convert_like_real): Give helpful error message.
1541
1542 PR c++/54652
1543 * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
1544
1545 PR c++/58504
1546 * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
1547 types.
1548
1549 PR c++/58606
1550 * pt.c (template_parm_to_arg): Call convert_from_reference.
1551 (tsubst_template_arg): Don't strip reference refs.
1552
1553 PR c++/58639
1554 * call.c (build_aggr_conv): Reject value-initialization of reference.
1555
1556 PR c++/58812
1557 PR c++/58651
1558 * call.c (convert_like_real): Give helpful error about excess braces
1559 for ck_rvalue of scalar type.
1560
1561 Core DR 1288
1562 * call.c (reference_binding): Only elide braces if the single
1563 element is reference-related.
1564
1565 PR c++/58814
1566 * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
1567 stabilizing.
1568
1569 PR c++/58837
1570 * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
1571 FUNCTION_DECL.
1572
1573 PR c++/59097
1574 * decl.c (compute_array_index_type): Don't call
1575 maybe_constant_value for a non-integral expression.
1576
1577 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
1578
1579 * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
1580 flag_cilkplus.
1581 * cp-gimplify.c (cp_genericize): Likewise.
1582 * decl.c (grokfndecl): Likewise.
1583 * parser.c (cp_parser_postfix_expression): Likewise.
1584 (cp_parser_postfix_open_square_expression): Likewise.
1585 (cp_parser_direct_declarator): Likewise.
1586 (is_cilkplus_vector_p): Likewise.
1587 (cp_parser_omp_clause_name): Likewise.
1588 (cp_parser_omp_all_clauses): Likewise.
1589 * pt.c (apply_late_template_attributes): Likewise.
1590 * typeck.c (cp_build_array_ref): Likewise.
1591 (cp_build_compound_expr): Likewise.
1592 (check_return_expr): Likewise.
1593
1594 2014-01-24 Jason Merrill <jason@redhat.com>
1595
1596 PR c++/58550
1597 * decl.c (grokdeclarator): Turn pedwarn about auto return type in
1598 c++11 into error.
1599
1600 PR c++/59886
1601 PR c++/59659
1602 * typeck2.c (process_init_constructor_array): Don't create
1603 RANGE_EXPR yet.
1604
1605 2014-01-24 Jakub Jelinek <jakub@redhat.com>
1606
1607 * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
1608 handling for RANGE_ARRAY case.
1609
1610 2014-01-24 Paolo Carlini <paolo.carlini@oracle.com>
1611
1612 PR c++/57524
1613 * name-lookup.c (push_using_directive): Use timevar_cond_start.
1614
1615 2014-01-23 Marek Polacek <polacek@redhat.com>
1616
1617 PR c/59846
1618 * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
1619
1620 2014-01-23 Marek Polacek <polacek@redhat.com>
1621
1622 PR c/58346
1623 * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
1624 an empty aggregate.
1625
1626 2014-01-23 Jason Merrill <jason@redhat.com>
1627
1628 PR c++/55189
1629 * cp-tree.h (struct language_function): Add infinite_loop and
1630 infinite_loops.
1631 (current_function_infinite_loop): New.
1632 * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
1633 (break_maybe_infinite_loop): New.
1634 (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
1635 (finish_do_stmt, finish_for_cond, finish_for_stmt)
1636 (begin_range_for_stmt): Use them.
1637 * decl.c (finish_function): Don't warn about missing return
1638 if current_function_infinite_loop.
1639 * pt.c (instantiate_decl): Copy current_function_infinite_loop.
1640 * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
1641
1642 * call.c (build_op_delete_call): Use make_tree_vector and
1643 release_tree_vector.
1644
1645 2014-01-23 Paolo Carlini <paolo.carlini@oracle.com>
1646
1647 PR c++/58980
1648 * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
1649 nested_name_specifier.
1650
1651 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
1652
1653 * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
1654 see if there is an attribute after function decl. If so, then
1655 parse them now.
1656 (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
1657 enabled function late parsing.
1658 (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
1659 attribute for a SIMD-enabled function.
1660 (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
1661 the function is used by SIMD-enabled function (indicated by NULL
1662 pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
1663 PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
1664 (cp_parser_cilk_simd_vectorlength): Modified this function to handle
1665 vectorlength clause in SIMD-enabled function and #pragma SIMD's
1666 vectorlength clause. Added a new bool parameter to differentiate
1667 between the two.
1668 (cp_parser_cilk_simd_fn_vector_attrs): New function.
1669 (is_cilkplus_vector_p): Likewise.
1670 (cp_parser_late_parsing_elem_fn_info): Likewise.
1671 (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
1672 and "vectorlength" clauses when Cilk Plus is enabled.
1673 (cp_parser_omp_clause_linear): Added a new parameter of type bool
1674 and emit a sorry message when step size is a parameter.
1675 * parser.h (cp_parser::cilk_simd_fn_info): New field.
1676 * decl.c (grokfndecl): Added flag_enable_cilkplus along with
1677 flag_openmp.
1678 * pt.c (apply_late_template_attributes): Likewise.
1679
1680 2014-01-23 Jakub Jelinek <jakub@redhat.com>
1681
1682 PR middle-end/58809
1683 * semantics.c (finish_omp_reduction_clause): Reject
1684 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
1685
1686 2014-01-22 Ville Voutilainen <ville.voutilainen@gmail.com>
1687
1688 PR c++/59482
1689 * parser.c (cp_parser_class_head): Push the class before parsing
1690 the base-clause, pop after it.
1691
1692 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
1693
1694 * decl2.c (cpp_check): Revert prototype change.
1695
1696 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
1697
1698 PR c++/59270
1699 PR c++/58811
1700 * init.c (build_value_init_noctor): Don't pass error_mark_node to
1701 build_value_init.
1702
1703 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
1704
1705 PR c++/59269
1706 * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
1707 only when errorcount == 0.
1708
1709 2014-01-17 Marek Polacek <polacek@redhat.com>
1710
1711 PR c++/59838
1712 * cvt.c (ocp_convert): Don't segfault on non-existing
1713 ENUM_UNDERLYING_TYPE.
1714
1715 2014-01-16 Jason Merrill <jason@redhat.com>
1716
1717 PR c++/59821
1718 * tree.c (bot_manip): Update the location of builtin_LINE and
1719 builtin_FILE calls.
1720
1721 2014-01-14 Jason Merrill <jason@redhat.com>
1722
1723 PR c++/59659
1724 * typeck2.c (massage_init_elt): New.
1725 (process_init_constructor_record)
1726 (process_init_constructor_union): Use it.
1727 (process_init_constructor_array): Use it. Use RANGE_EXPR.
1728 (split_nonconstant_init_1): Handle it.
1729 * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
1730
1731 2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
1732
1733 PR c++/59631
1734 * parser.c (cp_parser_postfix_expression): Added a new if-statement
1735 and replaced an existing if-statement with else-if statement.
1736 Changed an existing error message wording to match the one from the C
1737 parser.
1738
1739 2014-01-08 Jason Merrill <jason@redhat.com>
1740
1741 PR c++/59614
1742 * class.c (abi_tag_data): Add tags field.
1743 (check_abi_tags): Initialize it.
1744 (find_abi_tags_r): Support collecting missing tags.
1745 (mark_type_abi_tags): Don't look at template args.
1746 (inherit_targ_abi_tags): New.
1747 (check_bases_and_members): Use it.
1748 * cp-tree.h (ABI_TAG_IMPLICIT): New.
1749 * mangle.c (write_abi_tags): Check it.
1750
1751 2014-01-07 Jason Merrill <jason@redhat.com>
1752
1753 PR c++/58856
1754 * pt.c (num_innermost_template_parms): New.
1755 (get_underlying_template): Use it.
1756
1757 PR c++/58965
1758 * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
1759
1760 2014-01-07 Paolo Carlini <paolo.carlini@oracle.com>
1761
1762 * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
1763 the letter of 20.11.6 about Base and Derived naming the same
1764 class type modulo cv-qualifiers.
1765
1766 2014-01-06 Adam Butcher <adam@jessamine.co.uk>
1767
1768 PR c++/59635
1769 * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
1770 function as unimplemented for generic lambdas with varargs.
1771
1772 PR c++/59636
1773 * parser.c (cp_parser_template_parameter): Early out with
1774 error_mark_node if parameter declaration was not parsed.
1775
1776 PR c++/59629
1777 * parser.c (cp_parser_lambda_expression): Save/reset/restore
1778 auto_is_implicit_function_template_parm_p around lambda body.
1779
1780 PR c++/59638
1781 * parser.c (cp_parser_init_declarator): Undo fully implicit
1782 template parameter list when declarator is not a function.
1783
1784 2014-01-03 Marc Glisse <marc.glisse@inria.fr>
1785
1786 PR c++/58950
1787 * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
1788
1789 2014-01-03 Tobias Burnus <burnus@net-b.de>
1790
1791 PR c++/58567
1792 * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
1793
1794 2014-01-03 Paolo Carlini <paolo.carlini@oracle.com>
1795
1796 Core DR 1442
1797 PR c++/59165
1798 * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
1799 as include_std to perform_koenig_lookup.
1800 (cp_parser_postfix_expression): Adjust.
1801 * pt.c (tsubst_copy_and_build): Likewise.
1802 * semantics.c (perform_koenig_lookup): Remove bool parameter.
1803 (omp_reduction_lookup): Adjust.
1804 * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
1805 (lookup_arg_dependent): Likewise.
1806 (lookup_function_nonclass): Adjust.
1807 * name-lookup.h: Adjust declaration.
1808 * cp-tree.h: Likewise.
1809
1810 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
1811
1812 PR c++/59087
1813 * parser.c (cp_parser_userdef_numeric_literal): Mention
1814 -fext-numeric-literals in the message.
1815
1816 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
1817
1818 PR c++/59641
1819 * call.c (build_conditional_expr_1): Check the return value of
1820 force_rvalue.
1821
1822 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
1823
1824 * call.c (convert_like_real): Check complain.
1825
1826 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
1827
1828 PR c++/59378
1829 * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
1830 in templates.
1831
1832 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1833
1834 Update copyright years
1835
1836 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1837
1838 * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
1839 the standard form for the copyright notice.
1840 \f
1841 Copyright (C) 2014 Free Software Foundation, Inc.
1842
1843 Copying and distribution of this file, with or without modification,
1844 are permitted in any medium without royalty provided the copyright
1845 notice and this notice are preserved.