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