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