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