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