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