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