06ce87f8ba6de06cf85b9e0aba6b87071802b5a8
[gcc.git] / gcc / cp / ChangeLog
1 2016-05-13 Jason Merrill <jason@redhat.com>
2
3 * parser.c (cp_parser_postfix_dot_deref_expression): Use
4 complete_type_or_else for unknown_type_node, too.
5
6 2016-05-12 Marek Polacek <polacek@redhat.com>
7
8 PR c/70756
9 * call.c (build_new_op_1): Pass LOC to cp_build_modify_expr.
10 * cp-tree.h (cp_build_modify_expr): Update declaration.
11 (cxx_incomplete_type_error, cxx_incomplete_type_diagnostic): New inline
12 overloads.
13 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Pass INPUT_LOCATION to
14 cp_build_modify_expr.
15 * decl2.c (set_guard): Likewise.
16 (handle_tls_init): Likewise.
17 * init.c (perform_member_init): Likewise.
18 (expand_virtual_init): Likewise.
19 (build_new_1): Likewise.
20 (build_vec_delete_1): Likewise.
21 (get_temp_regvar): Likewise.
22 (build_vec_init): Likewise.
23 * method.c (do_build_copy_assign): Likewise.
24 (assignable_expr): Likewise.
25 * semantics.c (finish_omp_for): Likewise.
26 * typeck.c (cp_build_binary_op): Pass LOCATION to pointer_diff and
27 cp_pointer_int_sum.
28 (cp_pointer_int_sum): Add location parameter. Pass it down to
29 pointer_int_sum.
30 (pointer_diff): Add location parameter. Use it.
31 (build_modify_expr): Pass location down to cp_build_modify_expr.
32 (cp_build_modify_expr): Add location parameter. Use it.
33 (build_x_modify_expr): Pass location down to cp_build_modify_expr.
34 * typeck2.c (cxx_incomplete_type_diagnostic,
35 cxx_incomplete_type_error): Add location parameter.
36
37 2016-05-11 Marek Polacek <polacek@redhat.com>
38
39 PR c++/71024
40 * decl.c (duplicate_decls): Call diagnose_mismatched_decls.
41
42 2016-05-05 Jakub Jelinek <jakub@redhat.com>
43
44 * parser.c (cp_parser_selection_statement): For RID_SWITCH,
45 pass if_p instead of NULL to cp_parser_implicitly_scoped_statement.
46
47 2016-05-04 Marek Polacek <polacek@redhat.com>
48
49 * parser.c (cp_parser_selection_statement): Replace OPT_Wparentheses
50 with OPT_Wdangling_else.
51
52 2016-05-03 Martin Sebor <msebor@redhat.com>
53
54 PR c++/66561
55 * tree.c (builtin_valid_in_constant_expr_p): Treat BUILT_IN_FILE,
56 BUILT_IN_FUNCTION, and BUILT_IN_LINE as constant expressions.
57
58 2016-05-03 Marek Polacek <polacek@redhat.com>
59
60 PR c/70859
61 * call.c (build_cxx_call): Pass location and vNULL down to
62 check_builtin_function_arguments.
63
64 2016-05-03 Richard Biener <rguenther@suse.de>
65
66 * Make-lang.in (cc1plus-checksum.c): For stage-final re-use
67 the checksum from the previous stage.
68
69 2016-05-02 David Malcolm <dmalcolm@redhat.com>
70
71 PR c++/62314
72 * typeck.c (finish_class_member_access_expr): When
73 giving a hint about a possibly-misspelled member name,
74 add a fix-it replacement hint.
75
76 2016-05-02 Cesar Philippidis <cesar@codesourcery.com>
77
78 * cp-tree.h (finish_omp_clauses): Update prototype.
79 * parser.c (cp_parser_oacc_all_clauses): Update call to
80 finish_omp_clauses.
81 (cp_parser_omp_all_clauses): Likewise.
82 (cp_parser_omp_for_loop): Likewise.
83 (cp_omp_split_clauses): Likewise.
84 (cp_parser_oacc_cache): Likewise.
85 (cp_parser_oacc_loop): Likewise.
86 (cp_parser_omp_declare_target):
87 (cp_parser_cilk_simd_all_clauses): Likewise.
88 (cp_parser_cilk_for): Likewise.
89 * pt.c (tsubst_omp_clauses): Replace allow_fields and declare_simd
90 arguments with enum c_omp_region_type ort.
91 (tsubst_omp_clauses): Update calls to finish_omp_clauses.
92 (tsubst_omp_attribute): Update calls to tsubst_omp_clauses.
93 (tsubst_omp_for_iterator): Update calls to finish_omp_clauses.
94 (tsubst_expr): Update calls to tsubst_omp_clauses.
95 * semantics.c (finish_omp_clauses): Replace bool arguments
96 allow_fields, declare_simd, and is_cilk with bitmask ort.
97 (finish_omp_for): Update call to finish_omp_clauses.
98
99 2016-05-02 David Malcolm <dmalcolm@redhat.com>
100
101 PR c++/62314
102 * parser.c (cp_parser_class_head): Capture the start location;
103 use it to emit a fix-it insertion hint when complaining
104 about missing "template <> " in explicit specializations.
105
106 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
107
108 * init.c (build_new_1): Use shift operators instead of wi:: shifts.
109
110 2016-05-02 Richard Biener <rguenther@suse.de>
111
112 * decl.c (grokdeclarator): Properly insert a DECL_EXPR for
113 anonymous VLAs.
114
115 2016-04-29 Paolo Carlini <paolo.carlini@oracle.com>
116
117 PR c++/66644
118 * class.c (check_field_decl): Remove final int* parameter, change
119 the return type to bool; fix logic in order not to reject multiple
120 initialized fields in anonymous struct.
121 (check_field_decls): Adjust call.
122
123 2016-04-29 Cesar Philippidis <cesar@codesourcery.com>
124
125 PR middle-end/70626
126 * parser.c (cp_parser_oacc_loop): Don't augment mask with
127 OACC_LOOP_CLAUSE_MASK.
128 (cp_parser_oacc_kernels_parallel): Update call to
129 c_oacc_split_loop_clauses.
130
131 2016-04-28 Jason Merrill <jason@redhat.com>
132
133 Implement C++17 [[nodiscard]] attribute.
134 PR c++/38172
135 PR c++/54379
136 * parser.c (cp_parser_std_attribute): Handle [[nodiscard]].
137 * tree.c (handle_nodiscard_attribute): New.
138 (cxx_attribute_table): Add [[nodiscard]].
139 * cvt.c (cp_get_fndecl_from_callee, cp_get_callee_fndecl): New.
140 (maybe_warn_nodiscard): New.
141 (convert_to_void): Call it.
142
143 * cvt.c (cp_get_callee): New.
144 * constexpr.c (get_function_named_in_call): Use it.
145 * cxx-pretty-print.c (postfix_expression): Use it.
146 * except.c (check_noexcept_r): Use it.
147 * method.c (check_nontriv): Use it.
148 * tree.c (build_aggr_init_expr): Use it.
149 * cp-tree.h: Declare it.
150
151 2015-04-27 Ryan Burn <contact@rnburn.com>
152 Jeff Law <law@redhat.com>
153
154 PR c++/69024
155 PR c++/68997
156 * cp-gimplify.c (cp_gimplify_expr): Call cilk_cp_detect_spawn_and_unwrap
157 instead of cilk_detect_spawn_and_unwrap.
158 * cp-cilkplus.c (is_conversion_operator_function_decl_p): New.
159 (find_spawn): New.
160 (cilk_cp_detect_spawn_and_unwrap): New.
161 * lambda.c: Include cp-cilkplus.h.
162 * parser.c: Include cp-cilkplus.h.
163 * cp-tree.h (cpp_validate_cilk_plus_loop): Move prototype into...
164 * cp-cilkpus.h: New file.
165
166 2016-04-27 Nathan Sidwell <nathan@acm.org>
167
168 * constexpr.c (get_fundef_copy): Use the original function for
169 non-recursive evaluations.
170 (save_fundef_copy): Always expect a slot to be available.
171
172 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
173
174 * parser.c (cp_parser_postfix_expression): Call
175 warn_for_memset instead of warning directly here.
176
177 2016-04-26 Patrick Palka <ppalka@gcc.gnu.org>
178
179 PR c++/70241
180 * decl.c (build_enumerator): Set current_access_specifier when
181 declaring an enumerator belonging to an in-class enumeration.
182 * parser.c (cp_parser_check_access_in_redecleration): Also
183 consider in-class enumerations.
184
185 2016-04-26 Marek Polacek <polacek@redhat.com>
186
187 PR c++/70744
188 * call.c (build_conditional_expr_1): Call cp_stabilize_reference
189 instead of stabilize_reference.
190 (build_over_call): Likewise.
191 * cp-tree.h (cp_stabilize_reference): Declare.
192 * tree.c (cp_stabilize_reference): New function.
193 * typeck.c (cp_build_unary_op): Call cp_stabilize_reference instead of
194 stabilize_reference.
195 (unary_complex_lvalue): Likewise.
196 (cp_build_modify_expr): Likewise.
197
198 2016-04-26 Jakub Jelinek <jakub@redhat.com>
199
200 PR bootstrap/70704
201 * pt.c (build_non_dependent_expr): Use flag_checking > 1 instead of
202 just flag_checking.
203
204 2016-04-25 Jason Merrill <jason@redhat.com>
205
206 * tree.c (std_attribute_table): New.
207 (init_tree): Register it.
208
209 2016-04-22 Jason Merrill <jason@redhat.com>
210
211 * parser.c (cp_parser_perform_range_for_lookup): Decay the array.
212
213 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
214
215 * name-lookup.c (free_saved_scope): New free list of saved_scope
216 structures.
217 (push_to_top_level): Attempt to reuse a saved_scope struct
218 from free_saved_scope instead of allocating a new one each time.
219 (pop_from_top_level_1): Chain the now-unused saved_scope structure
220 onto free_saved_scope.
221
222 2016-04-21 Paolo Carlini <paolo.carlini@oracle.com>
223
224 PR c++/70540
225 * semantics.c (process_outer_var_ref): Unconditionally return
226 error_mark_node when mark_used returns false.
227
228 2016-04-21 Marek Polacek <polacek@redhat.com>
229
230 PR c++/70513
231 * parser.c (cp_parser_enum_specifier): Check and possibly error for
232 extra qualification.
233
234 2016-04-20 Nathan Sidwell <nathan@acm.org>
235
236 PR c++/55635
237 * init.c (build_vec_delete_1): Protect operator delete call in try
238 finally.
239 (build_delete): Likewise.
240 * optimize.c (build_delete_destructor_body): Likewise.
241
242 2016-04-20 Ilya Verbin <ilya.verbin@intel.com>
243
244 PR c++/69363
245 * cp-tree.h (finish_omp_clauses): Add new default argument.
246 * parser.c (cp_parser_cilk_simd_all_clauses): Use finish_omp_clauses
247 instead of c_finish_cilk_clauses.
248 * semantics.c (finish_omp_clauses): Add new argument. Allow
249 floating-point variables in the linear clause for Cilk Plus.
250
251 2016-04-20 Nathan Sidwell <nathan@acm.org>
252
253 * semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a
254 TARGET_EXPR.
255
256 2016-04-19 Jason Merrill <jason@redhat.com>
257
258 PR c++/66543
259 * expr.c (mark_exp_read): Handle NON_DEPENDENT_EXPR.
260 * pt.c (make_pack_expansion): Call mark_exp_read.
261 * semantics.c (finish_id_expression): Call mark_type_use in
262 unevaluated context.
263
264 DR 2137
265 * call.c (implicit_conversion): If we choose a copy constructor
266 for list-initialization from the same type, the conversion is an
267 exact match.
268
269 * constexpr.c (breaks): Handle EXIT_EXPR.
270 (cxx_eval_loop_expr): Handle COMPOUND_EXPR body.
271 (cxx_eval_constant_expression): Handle EXIT_EXPR, improve handling
272 of COMPOUND_EXPR.
273
274 PR c++/68206
275 PR c++/68530
276 * constexpr.c (potential_constant_expression_1): Handle LOOP_EXPR
277 and GOTO_EXPR.
278
279 * pt.c (tsubst_expr): Remove shadowing declaration.
280 (tsubst_pack_expansion): Add assert.
281
282 * semantics.c (add_decl_expr): Use DECL_SOURCE_LOCATION.
283
284 PR c++/70522
285 * name-lookup.c (qualified_lookup_using_namespace): Look through
286 hidden names.
287
288 2016-04-18 Michael Matz <matz@suse.de>
289
290 * class.c (build_vtable): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
291 (layout_class_type): Ditto.
292 (build_base_field): Use SET_DECL_ALIGN.
293 (fixup_attribute_variants): Use SET_TYPE_ALIGN.
294 * decl.c (duplicate_decls): Use SET_DECL_ALIGN.
295 (record_unknown_type): Use SET_TYPE_ALIGN.
296 (cxx_init_decl_processing): Ditto.
297 (copy_type_enum): Ditto.
298 (grokfndecl): Use SET_DECL_ALIGN.
299 (copy_type_enum): Use SET_TYPE_ALIGN.
300 * pt.c (instantiate_class_template_1): Use SET_TYPE_ALIGN.
301 (tsubst): Ditto.
302 * tree.c (cp_build_qualified_type_real): Use SET_TYPE_ALIGN.
303 * lambda.c (maybe_add_lambda_conv_op): Use SET_DECL_ALIGN.
304 * method.c (implicitly_declare_fn): Use SET_DECL_ALIGN.
305 * rtti.c (emit_tinfo_decl): Ditto.
306
307 2016-04-18 Jason Merrill <jason@redhat.com>
308
309 PR c++/70690
310 PR c++/70528
311 * class.c (type_maybe_constexpr_default_constructor): New.
312 (type_has_constexpr_default_constructor): Revert.
313
314 2016-04-16 Sandra Loosemore <sandra@codesourcery.com>
315
316 PR target/1078
317
318 * tree.c (cxx_attribute_table): Remove "com_interface" entry.
319 (handle_com_interface_attribute): Delete.
320
321 2016-04-15 Jason Merrill <jason@redhat.com>
322
323 PR c++/70685
324 * constexpr.c (get_fundef_copy): Handle null *slot.
325
326 PR c++/70505
327 * pt.c (tsubst_baselink): Give the new TEMPLATE_ID_EXPR
328 unknown_type_node, too.
329
330 2016-04-15 Jason Merrill <jason@redhat.com>
331 Nathan Sidwell <nathan@acm.org>
332
333 PR c++/70594
334 * constexpr.c (constexpr_call_table): Preserve in GC.
335 (struct fundef_copy, struct fundef_copies_table_t): Delete.
336 (fundef_copies_table): Preserve in GC. Change to pointer to
337 tree->tree hash.
338 (maybe_initialize_fundef_copies_table): Adjust.
339 (get_fundef_copy): Return a TREE_LIST. Use non-inserting search.
340 (save_fundef_copy): Adjust for a TREE_LIST.
341 (cxx_eval_call_expression): Adjust for a fundef_copy TREE_LIST.
342 (fini_constexpr): New.
343 * cp-tree.h (fini_constexpr): Declare.
344 * decl2.c (c_parse_final_cleanups): Call fini_constexpr.
345
346 2016-04-15 Jakub Jelinek <jakub@redhat.com>
347
348 PR c/70436
349 * parser.c (cp_parser_pragma): Add IF_P argument, pass it down
350 where needed.
351 (cp_parser_declaration_seq_opt, cp_parser_member_specification_opt,
352 cp_parser_objc_interstitial_code, cp_parser_omp_declare_simd,
353 cp_parser_oacc_routine): Adjust cp_parser_pragma callers.
354 (cp_parser_statement): Likewise. Adjust cp_parser_cilk_for caller.
355 (cp_parser_omp_structured_block): Add IF_P argument, pass it down to
356 cp_parser_statement.
357 (cp_parser_oacc_data, cp_parser_oacc_host_data, cp_parser_oacc_loop,
358 cp_parser_oacc_kernels_parallel, cp_parser_omp_critical,
359 cp_parser_omp_simd, cp_parser_omp_for, cp_parser_omp_master,
360 cp_parser_omp_ordered, cp_parser_omp_parallel, cp_parser_omp_single,
361 cp_parser_omp_task, cp_parser_omp_taskgroup, cp_parser_omp_distribute,
362 cp_parser_omp_teams, cp_parser_omp_target_data, cp_parser_omp_target,
363 cp_parser_omp_taskloop, cp_parser_omp_construct,
364 cp_parser_cilk_grainsize, cp_parser_cilk_simd, cp_parser_cilk_for):
365 Add IF_P argument, pass it down where needed.
366 (cp_parser_omp_for_loop): Likewise. Clear IF_P if nbraces.
367 (cp_parser_omp_sections_scope): Adjust cp_parser_omp_structured_block
368 calls.
369
370 2016-04-14 Jason Merrill <jason@redhat.com>
371
372 PR c++/70494
373 * decl.c (cxx_maybe_build_cleanup): Handle non-decls.
374 * typeck2.c (split_nonconstant_init_1): Use it.
375
376 PR c++/70528
377 * class.c (type_has_constexpr_default_constructor): Return true
378 for an implicitly declared constructor.
379
380 PR c++/70622
381 * parser.c (cp_parser_init_declarator): Add auto_result parm.
382 (cp_parser_simple_declaration): Pass it.
383 (strip_declarator_types): New.
384
385 PR c++/70543
386 * pt.c (value_dependent_expression_p) [VAR_DECL]: A type-dependent
387 initializer also makes the variable value-dependent.
388
389 PR c++/70648
390 * constexpr.c (cxx_eval_store_expression): Also copy
391 CONSTRUCTOR_NO_IMPLICIT_ZERO.
392
393 2016-04-14 Martin Sebor <msebor@redhat.com>
394
395 PR c++/69517
396 PR c++/70019
397 PR c++/70588
398 * cp-tree.h, decl.c, init.c, typeck2.c: Revert.
399
400 2016-04-14 Jason Merrill <jason@redhat.com>
401
402 * call.c, decl.c, error.c, cp-tree.h, decl.c: Revert empty
403 parameter ABI change.
404
405 2016-04-13 Martin Sebor <msebor@redhat.com>
406
407 PR c++/69517
408 PR c++/70019
409 PR c++/70588
410 * cp-tree.h (throw_bad_array_length, build_vla_check): Declare new
411 functions.
412 * decl.c (check_initializer, cp_finish_decl): Call them.
413 (reshape_init_r): Reject incompletely braced intializer-lists
414 for VLAs.
415 * init.c (throw_bad_array_length, build_vla_check)
416 (build_vla_size_check, build_vla_init_check): Define new functions.
417 * typeck2.c (split_nonconstant_init_1): Use variably_modified_type_p()
418 to detect a VLA.
419 (store_init_value): Same.
420
421 2016-04-13 Jason Merrill <jason@redhat.com>
422
423 Warn about empty parameter ABI with -Wabi=9.
424 * call.c (empty_class_msg, mark_for_abi_warning)
425 (warn_empty_class_abi): New.
426 (build_call_a): Use them.
427 * decl.c (store_parm_decls): Use mark_for_abi_warning.
428 * error.c (pp_format_to_string): New.
429
430 Pass empty class parameters like C.
431 * call.c (pass_as_empty_struct, empty_class_arg): New.
432 (type_passed_as, build_x_va_arg): Use pass_as_empty_struct.
433 (build_call_a): Use empty_class_arg.
434 * cp-tree.h (CPTI_EMPTY_STRUCT, empty_struct_type): New.
435 * decl.c (cxx_init_decl_processing): Create empty_struct_type.
436
437 2016-04-13 Jason Merrill <jason@redhat.com>
438
439 PR c++/70627
440 * decl.c (start_enum): Don't change an existing ENUM_UNDERLYING_TYPE.
441
442 2016-04-13 Paolo Carlini <paolo.carlini@oracle.com>
443
444 PR c++/70635
445 * pt.c (resolve_typename_type): Fix typos in infinite recursion
446 avoidance mechanism.
447
448 2016-04-13 Jason Merrill <jason@redhat.com>
449
450 PR c++/70634
451 * pt.c (instantiation_dependent_uneval_expression_p): Split out
452 from instantiation_dependent_expression_p.
453 (value_dependent_expression_p): Use it for unevaluated operands.
454 (instantiation_dependent_r): Don't check value-dependence.
455 (instantiation_dependent_expression_p): Check
456 value-dependence of the expression as a whole.
457 * cp-tree.h: Declare instantiation_dependent_uneval_expression_p.
458 * semantics.c (finish_decltype_type): Use it.
459
460 * constexpr.c (potential_nondependent_constant_expression): New.
461 (potential_nondependent_static_init_expression): New.
462 (maybe_constant_value_1, fold_non_dependent_expr)
463 (maybe_constant_init): Use them.
464 * pt.c (instantiate_non_dependent_expr_sfinae)
465 (instantiate_non_dependent_or_null, convert_nontype_argument): Use
466 them.
467 * cp-tree.h: Declare them.
468
469 2016-04-13 Jakub Jelinek <jakub@redhat.com>
470
471 PR c++/70594
472 * decl.c (pop_labels_1): Removed.
473 (note_label, sort_labels): New functions.
474 (pop_labels): During named_labels traversal, just push the slot
475 pointers into a vector, then qsort it by DECL_UID and only then
476 call pop_label and chain it into BLOCK_VARS.
477
478 2016-04-13 Jason Merrill <jason@redhat.com>
479
480 PR c++/70615
481 * cp-gimplify.c (cp_genericize_r): Expand PTRMEM_CST here.
482 (cp_gimplify_expr): Not here.
483
484 2016-04-12 Patrick Palka <ppalka@gcc.gnu.org>
485
486 PR c++/70610
487 * tree.c (lvalue_kind) [NON_DEPENDENT_EXPR]: Unconditionally
488 recurse into it.
489 * typeck.c (build_x_conditional_expr): Unconditionally remember
490 that the result is an lvalue or xvalue.
491
492 2016-04-12 Jason Merrill <jason@redhat.com>
493
494 * class.c (is_really_empty_class): A zero-length array is empty.
495 An unnamed bit-field doesn't make a class non-empty.
496
497 2016-04-12 Paolo Carlini <paolo.carlini@oracle.com>
498
499 PR c++/68722
500 * parser.c (cp_parser_cache_defarg): When file ends in default
501 argument simply return error_mark_node.
502
503 2016-04-12 Nathan Sidwell <nathan@acm.org>
504
505 PR c++/70501
506 * constexpr.c (cxx_eval_bare_aggregate): Handle VECTOR_TYPE
507 similarly to PMF.
508
509 2016-04-11 Jason Merrill <jason@redhat.com>
510
511 * mangle.c (decl_is_template_id): The template itself counts as a
512 template-id.
513
514 2016-04-08 Patrick Palka <ppalka@gcc.gnu.org>
515
516 PR c++/70590
517 PR c++/70452
518 * constexpr.c (cxx_eval_outermost_expression): Call unshare_expr
519 on the result if it's not a CONSTRUCTOR.
520
521 2016-04-07 Patrick Palka <ppalka@gcc.gnu.org>
522
523 PR c++/70452
524 * constexpr.c (find_constructor): New function.
525 (unshare_constructor): New function.
526 (cxx_eval_call_expression): Use unshare_constructor instead of
527 unshare_expr.
528 (find_array_ctor_elt): Likewise.
529 (cxx_eval_vec_init_1): Likewise.
530 (cxx_eval_store_expression): Likewise.
531 (cxx_eval_constant_expression): Likewise.
532
533 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
534
535 PR c/70436
536 * cp-tree.h (FOR_EACH_CLONE): Restructure macro to avoid
537 potentially generating a future -Wparentheses warning in its
538 callers.
539
540 2016-04-06 Jason Merrill <jason@redhat.com>
541
542 * class.c (check_abi_tags): Fix function template handling.
543
544 2016-04-05 Nathan Sidwell <nathan@acm.org>
545
546 PR c++/70512
547 * class.c (fixup_may_alias): New.
548 (fixup_attribute_variants): Call it.
549
550 2016-04-05 Patrick Palka <ppalka@gcc.gnu.org>
551
552 PR c++/70452
553 * constexpr.c (struct fundef_copy): New struct.
554 (struct fundef_copies_table_t): New struct.
555 (fundef_copies_table): New static variable.
556 (maybe_initialize_fundef_copies_table): New static function.
557 (get_fundef_copy): New static function.
558 (save_fundef_copy): New static function.
559 (cxx_eval_call_expression): Use get_fundef_copy, and
560 save_fundef_copy.
561 (constexpr_call_table): Add "deletable" GTY marker.
562
563 2016-04-05 Patrick Palka <ppalka@gcc.gnu.org>
564
565 PR c++/70452
566 * cp-tree.h (class cache_map): Remove.
567 * constexpr.c (cv_cache): Change type to
568 GTY((deletable)) hash_map<tree, tree> *.
569 (maybe_constant_value): Adjust following the change to cv_cache.
570 (clear_cv_cache): New static function.
571 (clear_cv_and_fold_caches): Use it.
572 * cp-gimplify.c (fold_cache): Change type to
573 GTY((deletable)) hash_map<tree, tree> *.
574 (clear_fold_cache): Adjust following the change to fold_cache.
575 (cp_fold): Likewise.
576
577 2016-04-02 Martin Sebor <msebor@redhat.com>
578
579 PR c++/67376
580 PR c++/70170
581 PR c++/70172
582 PR c++/70228
583 * constexpr.c (diag_array_subscript): New function.
584 (cxx_eval_array_reference): Detect out of bounds array indices.
585
586 2016-04-01 Jason Merrill <jason@redhat.com>
587
588 PR c++/70449
589 PR c++/70344
590 * pt.c (instantiate_decl): A function isn't fully defined if
591 DECL_INITIAL is error_mark_node.
592 * constexpr.c (cxx_eval_call_expression): Likewise.
593
594 2016-04-01 Jakub Jelinek <jakub@redhat.com>
595 Marek Polacek <polacek@redhat.com>
596
597 PR c++/70488
598 * init.c (warn_placement_new_too_small): Test whether
599 DECL_SIZE_UNIT or TYPE_SIZE_UNIT are integers that fit into uhwi.
600
601 2016-04-01 Nathan Sidwell <nathan@acm.org>
602
603 PR c++/68475
604 * decl.c (check_redeclaration_exception_specification): Check
605 regardless of -fno-exceptions.
606 * typeck2.c (merge_exception_specifiers): Relax assert by checking
607 flag_exceptions too.
608
609 2016-03-31 Nathan Sidwell <nathan@acm.org>
610
611 * decl.c (start_preparsed_function): Remove unnecessary bracing.
612 (finish_destructor_body): Don't emit operator delete here.
613
614 2016-03-31 Nathan Sidwell <nathan@acm.org>
615
616 PR c++/70393
617 * constexpr.c (cxx_eval_store_expression): Keep CONSTRUCTOR
618 elements in field order.
619
620 2016-03-31 Marek Polacek <polacek@redhat.com>
621
622 PR c/70297
623 * decl.c (duplicate_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
624
625 2016-03-31 Richard Biener <rguenther@suse.de>
626
627 PR c++/70430
628 * typeck.c (cp_build_binary_op): Fix operand order of vector
629 conditional in truth op handling.
630
631 2016-03-29 Jason Merrill <jason@redhat.com>
632
633 PR c++/70353
634 * decl.c (make_rtl_for_nonlocal_decl): Don't defer local statics
635 in constexpr functions.
636
637 2016-03-28 Jason Merrill <jason@redhat.com>
638
639 PR c++/70422
640 PR c++/64266
641 PR c++/70353
642 * decl.c, pt.c, constexpr.c: Revert last patch.
643
644 2016-03-25 Jason Merrill <jason@redhat.com>
645 Martin Liška <mliska@suse.cz>
646
647 PR c++/64266
648 PR c++/70353
649 Core issue 1962
650 * decl.c (cp_fname_init): Decay the initializer to pointer.
651 (cp_make_fname_decl): Set DECL_DECLARED_CONSTEXPR_P,
652 DECL_VALUE_EXPR, DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
653 Don't call cp_finish_decl.
654 * pt.c (tsubst_expr) [DECL_EXPR]: Set DECL_VALUE_EXPR,
655 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. Don't call cp_finish_decl.
656 * constexpr.c (cxx_eval_constant_expression) [VAR_DECL]:
657 Handle DECL_VALUE_EXPR.
658
659 2016-03-24 Jason Merrill <jason@redhat.com>
660
661 PR c++/70386
662 * constexpr.c (cxx_eval_bare_aggregate): Handle PMFs.
663
664 PR c++/70323
665 * constexpr.c (cxx_eval_call_expression): Don't cache result if
666 *overflow_p.
667
668 2016-03-24 Patrick Palka <ppalka@gcc.gnu.org>
669
670 PR c++/62212
671 * tree.c (build_cplus_array_type): Determine type-dependentess
672 with uses_template_parms instead of with dependent_type_p.
673
674 2016-03-23 Patrick Palka <ppalka@gcc.gnu.org>
675
676 PR c++/70347
677 * typeck.c (process_init_constructor_union): If the initializer
678 is empty, use the union's NSDMI if it has one.
679
680 2016-03-23 Patrick Palka <ppalka@gcc.gnu.org>
681
682 PR c++/70332
683 * pt.c (tsubst_copy) [PARM_DECL]: Handle the use of 'this' in an
684 NSDMI that's part of an aggregrate initialization.
685
686 2016-03-23 Jakub Jelinek <jakub@redhat.com>
687
688 PR c++/70001
689 * constexpr.c (cxx_eval_vec_init_1): Reuse CONSTRUCTOR initializers
690 for 1..max even for multi-dimensional arrays. Call unshare_expr
691 on it.
692
693 PR c++/70323
694 * constexpr.c (cxx_eval_constant_expression): Diagnose overflow
695 on TREE_OVERFLOW constants.
696
697 PR c++/70376
698 * cp-gimplify.c (genericize_omp_for_stmt): Don't walk OMP_FOR_CLAUSES
699 for OMP_TASKLOOP here.
700 (cp_genericize_r): Handle OMP_TASKLOOP like OMP_TASK, except do call
701 genericize_omp_for_stmt instead of cp_walk_tree on OMP_BODY.
702
703 2016-03-23 Alexandre Oliva <aoliva@redhat.com>
704 Jason Merrill <jason@redhat.com>
705 Jakub Jelinek <jakub@redhat.com>
706
707 PR c++/69315
708 * cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): Remove.
709 * decl.c (defer_mark_used_calls, deferred_mark_used_calls): Remove.
710 (finish_function): Don't set or test them.
711 * decl2.c (mark_used): Don't handle defer_mark_used_calls.
712
713 2016-03-23 Jason Merrill <jason@redhat.com>
714
715 PR c++/70344
716 * constexpr.c (cxx_eval_call_expression): Catch invalid recursion.
717
718 2016-03-23 Marek Polacek <polacek@redhat.com>
719
720 PR c++/69884
721 * pt.c (canonicalize_type_argument): Use OPT_Wignored_attributes.
722
723 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
724
725 * call.c (build_conditional_expr_1): Always use original
726 condition type for vector type checks and build.
727
728 2016-03-22 Patrick Palka <ppalka@gcc.gnu.org>
729
730 PR c++/70096
731 * pt.c (tsubst_decl): Clear the DECL_MODE of the new decl.
732
733 2016-03-22 Patrick Palka <ppalka@gcc.gnu.org>
734
735 PR c++/70204
736 * constexpr.c (non_const_var_error): Check
737 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
738
739 2016-03-21 Richard Henderson <rth@redhat.com>
740
741 PR c++/70273
742 * decl.c (notice_forced_label_r): New.
743 (cp_finish_decl): Use it.
744
745 2016-03-21 Jason Merrill <jason@redhat.com>
746
747 PR c++/70285
748 * cp-gimplify.c (cp_fold) [COND_EXPR]: Handle bit-fields.
749
750 2016-03-18 Jason Merrill <jason@redhat.com>
751
752 PR c++/70139
753 * constexpr.c (cxx_eval_call_expression): Fix trivial copy.
754
755 PR c++/70147
756 * class.c (vptr_via_virtual_p): New.
757 (most_primary_binfo): Factor out of build_rtti_vtbl_entries.
758 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Don't clear
759 a vptr from any virtual base in a not-in-charge 'structor.
760
761 * decl.c (build_clobber_this): Factor out of
762 start_preparsed_function and begin_destructor_body. Handle
763 virtual bases better.
764
765 * class.c (build_if_in_charge): Split out from build_base_path.
766 * init.c (expand_virtual_init, expand_default_init): Use it.
767 * call.c (build_special_member_call): Use it.
768
769 2016-03-18 Jakub Jelinek <jakub@redhat.com>
770
771 PR c++/70267
772 * init.c (build_new_1): Complain and return error_mark_node
773 if alloc_fn is not _Jv_AllocObject function returning pointer.
774
775 2016-03-18 Patrick Palka <ppalka@gcc.gnu.org>
776
777 PR c++/70205
778 * search.c (adjust_result_of_qualified_name_lookup): Don't
779 update the BASELINK_BINFO of DECL if the second call
780 to lookup_base fails.
781
782 2016-03-18 Patrick Palka <ppalka@gcc.gnu.org>
783
784 PR c++/70218
785 * parser.c (cp_parser_lambda_expression): Move call to
786 pop_deferring_access_checks ahead of the call to
787 cp_parser_end_tentative_firewall.
788
789 2016-03-17 Jakub Jelinek <jakub@redhat.com>
790
791 PR c++/70144
792 * cp-tree.h (magic_varargs_p): Return int instead of bool.
793 * call.c (magic_varargs_p): Return int instead of bool, return 2 for
794 Cilk+ reductions, otherwise 1 for magic varargs and 0 for normal
795 varargs.
796 (build_over_call): If magic_varargs_p == 2, call reject_gcc_builtin,
797 if magic_varargs_p == 1, call decay_conversion
798 instead of mark_type_use. Don't store error_mark_node arguments to
799 argarray, instead return error_mark_node.
800
801 PR c++/70272
802 * decl.c (begin_destructor_body): Don't insert clobber if
803 is_empty_class (current_class_type).
804
805 2016-03-17 Marek Polacek <polacek@redhat.com>
806
807 PR c++/70194
808 * typeck.c (warn_for_null_address): New function.
809 (cp_build_binary_op): Call it.
810
811 2016-03-16 Jason Merrill <jason@redhat.com>
812
813 PR c++/70259
814 * decl.c (start_preparsed_function): Don't clobber an empty base.
815
816 2016-03-16 Jakub Jelinek <jakub@redhat.com>
817
818 PR c++/70147
819 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Conditionalize
820 BINFO_VIRTUAL_P vtable clearing on current_in_charge_parm.
821
822 PR c++/70147
823 * cp-ubsan.c (cp_ubsan_maybe_initialize_vtbl_ptrs): Temporarily
824 set in_base_initializer.
825
826 2016-03-15 Marek Polacek <polacek@redhat.com>
827
828 PR c++/70209
829 * tree.c (strip_typedefs): Call strip_typedefs again on the
830 DECL_ORIGINAL_TYPE result.
831
832 2016-03-15 Jason Merrill <jason@redhat.com>
833
834 PR c++/70095
835 * pt.c (instantiate_decl): Fix call to variable_template_p.
836
837 PR c++/70141
838 * pt.c (for_each_template_parm_r): Always walk into TYPENAME_TYPE.
839
840 2016-03-14 Casey Carter <casey@carter.net>
841 Jason Merrill <jason@redhat.com>
842
843 P0184R0: Generalizing the Range-Based For Loop
844 * parser.c (cp_convert_range_for): Set the type of __end separately.
845 (cp_parser_perform_range_for_lookup): Allow different begin/end
846 types if they are comparable.
847
848 2016-03-12 Patrick Palka <ppalka@gcc.gnu.org>
849
850 PR c++/70106
851 * semantics.c (force_paren_expr): Just build a PAREN_EXPR when
852 processing_template_decl and EXPR is a SCOPE_REF.
853
854 2016-03-10 Patrick Palka <ppalka@gcc.gnu.org>
855 Jakub Jelinek <jakub@redhat.com>
856
857 PR c++/70001
858 * constexpr.c (cxx_eval_vec_init_1): For pre_init case, reuse
859 return value from cxx_eval_constant_expression from earlier
860 elements if it is valid constant initializer requiring no
861 relocations.
862
863 2016-03-10 Marek Polacek <polacek@redhat.com>
864
865 PR c++/70153
866 * cp-gimplify.c (cp_fold): Handle UNARY_PLUS_EXPR.
867
868 2016-03-09 Cesar Philippidis <cesar@codesourcery.com>
869
870 * parser.c (cp_parser_oacc_loop): Update cclauses and clauses
871 when calling c_finish_omp_clauses.
872
873 2016-03-08 Jason Merrill <jason@redhat.com>
874
875 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful
876 diagnostic for use of "concept".
877 (cp_parser_requires_clause_opt): And "requires".
878 (cp_parser_type_parameter, cp_parser_late_return_type_opt)
879 (cp_parser_explicit_template_declaration): Adjust.
880 * Make-lang.in (check-c++-all): Add "concepts" to std list.
881
882 P0036R0: Unary Folds and Empty Parameter Packs
883 * pt.c (expand_empty_fold): Remove special cases for *,+,&,|.
884
885 2016-03-08 Jakub Jelinek <jakub@redhat.com>
886
887 PR c++/70135
888 * constexpr.c (cxx_eval_loop_expr): Forget saved values of SAVE_EXPRs
889 even after the last iteration of the loop.
890
891 * decl.c (duplicate_decls): Fix spelling - becuase -> because.
892
893 2016-03-07 Patrick Palka <ppalka@gcc.gnu.org>
894
895 PR c++/66786
896 * pt.c (get_template_info): Handle PARM_DECL.
897 (template_class_depth): Check DECL_P instead of
898 VAR_OR_FUNCTION_DECL_P.
899
900 2016-03-05 Jason Merrill <jason@redhat.com>
901
902 PR c++/67364
903 * constexpr.c (cxx_eval_store_expression): Replace
904 CONSTRUCTOR_ELTS in nested CONSTRUCTORs, too.
905
906 2016-03-05 Patrick Palka <ppalka@gcc.gnu.org>
907
908 PR c++/66786
909 * pt.c (template_class_depth): Given a lambda type, iterate
910 into its LAMBDA_TYPE_EXTRA_SCOPE field instead of its
911 TYPE_CONTEXT. Given a VAR_DECL, iterate into its
912 CP_DECL_CONTEXT.
913
914 2016-03-04 Jason Merrill <jason@redhat.com>
915
916 PR c++/69203
917 * cp-tree.h (COND_EXPR_IS_VEC_DELETE): New.
918 * init.c (build_vec_delete_1): Set it.
919 * constexpr.c (potential_constant_expression_1) [COND_EXPR]: Check it.
920
921 2016-03-04 Jakub Jelinek <jakub@redhat.com>
922
923 * decl.c (start_preparsed_function): Don't emit start clobber at the
924 start of constructor clones.
925
926 PR c++/70035
927 * cp-tree.h (cp_ubsan_maybe_initialize_vtbl_ptrs): New prototype.
928 * decl.c (start_preparsed_function): Call
929 cp_ubsan_maybe_initialize_vtbl_ptrs if needed.
930 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs,
931 cp_ubsan_maybe_initialize_vtbl_ptrs): New functions.
932
933 2016-03-04 Jason Merrill <jason@redhat.com>
934
935 PR c++/67364
936 * constexpr.c (cxx_eval_component_reference): Further tweak.
937
938 * constexpr.c (struct constexpr_ctx): Add save_exprs field.
939 (cxx_eval_loop_expr): Discard SAVE_EXPR values before looping.
940 (cxx_eval_constant_expression) [SAVE_EXPR]: Add it to the set.
941 (cxx_eval_outermost_constant_expr, is_sub_constant_expr): Initialize.
942
943 PR c++/70067
944 * tree.c (strip_typedefs): Handle TYPENAME_TYPE lookup finding the
945 same type.
946
947 2016-03-03 Jason Merrill <jason@redhat.com>
948
949 * method.c (synthesized_method_walk): operator= can also be constexpr.
950
951 * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Get
952 LAMBDA_EXPR_RETURN_TYPE from the instantiated closure.
953
954 PR c++/67164
955 * pt.c (copy_template_args): New.
956 (tsubst_pack_expansion): Use it.
957
958 * call.c (build_aggr_conv): Use get_nsdmi.
959
960 PR c++/51406
961 * typeck.c (build_static_cast_1): Avoid folding back to lvalue.
962
963 PR c++/67364
964 * constexpr.c (cxx_eval_component_reference): Just return an empty
965 CONSTRUCTOR for an empty class.
966
967 2016-03-01 Jason Merrill <jason@redhat.com>
968
969 PR c++/70036
970 * parser.c (cp_parser_requires_clause): Call
971 check_for_bare_parameter_packs.
972
973 PR c++/51489
974 * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
975 the operands.
976
977 PR c++/69995
978 * constexpr.c (cxx_eval_call_expression): Unshare arg.
979 (cxx_eval_constant_expression) [DECL_EXPR]: Unshare init.
980 [TARGET_EXPR]: Unshare init.
981
982 2016-03-01 Patrick Palka <ppalka@gcc.gnu.org>
983
984 PR c++/68948
985 PR c++/69961
986 * pt.c (tsubst_baselink): Reinstate the check for an invalid
987 constructor call.
988
989 2016-02-28 Jason Merrill <jason@redhat.com>
990
991 PR c++/69995
992 * constexpr.c (cxx_eval_store_expression): Unshare init.
993
994 2016-02-26 Jason Merrill <jason@redhat.com>
995
996 PR c++/69958
997 * pt.c (make_argument_pack): New.
998 (tsubst_copy) [SIZEOF_EXPR]: Handle partial expansion.
999 (tsubst_copy_and_build): Likewise.
1000
1001 2016-02-25 Jason Merrill <jason@redhat.com>
1002
1003 PR c++/69889
1004 * cp-tree.h (AGGR_INIT_FROM_THUNK_P): New.
1005 * tree.c (build_aggr_init_expr): Set it.
1006 * semantics.c (simplify_aggr_init_expr): Check it.
1007 * cp-gimplify.c (cp_genericize_r): Don't walk into
1008 a call/aggr_init from a thunk.
1009
1010 PR c++/69842
1011 * method.c (forward_parm): Handle parameter packs.
1012 * lambda.c (maybe_add_lambda_conv_op): Use it for them.
1013
1014 PR c++/67364
1015 * constexpr.c (cxx_eval_component_reference): Don't complain about
1016 unevaluated empty classes.
1017
1018 PR c++/68049
1019 * tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.
1020
1021 2016-02-25 Patrick Palka <ppalka@gcc.gnu.org>
1022
1023 PR c++/69736
1024 * cp-tree.h (REF_PARENTHESIZED_P): Adjust documentation.
1025 (maybe_undo_parenthesized_ref): Declare.
1026 * semantics.c (maybe_undo_parenthesized_ref): Split out from
1027 check_return_expr.
1028 (finish_call_expr): Use it.
1029 * typeck.c (check_return_expr): Use it.
1030 * pt.c (tsubst_copy_and_build) [INDIRECT_REF]: Retain the
1031 REF_PARENTHESIZED_P flag.
1032
1033 2016-02-24 Jakub Jelinek <jakub@redhat.com>
1034
1035 PR c++/69922
1036 * class.c (build_base_path): Set TREE_NO_WARNING on the null_test.
1037 Avoid folding it.
1038 * init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL
1039 tests.
1040 * cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL,
1041 unless they are folded into INTEGER_CST, error_mark_node or some
1042 comparison with NULL, avoid folding them and use either the original
1043 comparison or non-folded comparison of folded arguments.
1044 * cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the
1045 comparison, don't fold the comparison right away.
1046
1047 2016-02-24 Jason Merrill <jason@redhat.com>
1048
1049 PR c++/69323
1050 * friend.c (make_friend_class): Likewise.
1051 * decl.c (lookup_and_check_tag): Diagnose invalid dependent friend.
1052
1053 2016-02-24 Jason Merrill <jason@redhat.com>
1054
1055 PR c++/69323
1056 * pt.c (instantiate_class_template_1): Set
1057 processing_template_decl before substituting friend_type.
1058
1059 016-02-24 Martin Sebor <msebor@redhat.com>
1060
1061 PR c++/69912
1062 * tree.c (build_ctor_subob_ref): Compare types' main variants
1063 instead of the types as they are.
1064
1065 2016-02-24 Jason Merrill <jason@redhat.com>
1066
1067 * decl.c (start_preparsed_function): Condition ctor clobber on
1068 flag_lifetime_dse > 1.
1069
1070 * cp-gimplify.c (cp_fold): Don't fold constexpr calls if -fno-inline.
1071
1072 2016-02-19 Jason Merrill <jason@redhat.com>
1073
1074 PR c++/69743
1075 * call.c (remaining_arguments): No longer static.
1076 * cp-tree.h: Declare it.
1077 * pt.c (more_specialized_fn): Use it.
1078
1079 2016-02-19 Jakub Jelinek <jakub@redhat.com>
1080 Bernd Edlinger <bernd.edlinger@hotmail.de>
1081
1082 * Make-lang.in: Invoke gperf with -L C++.
1083 * cfns.gperf: Remove prototypes for hash and libc_name_p
1084 inlines.
1085 * cfns.h: Regenerated.
1086 * except.c (nothrow_libfn_p): Adjust.
1087
1088 2016-02-19 Jakub Jelinek <jakub@redhat.com>
1089
1090 PR c++/69850
1091 * rtti.c (ifnonnull): Set TREE_NO_WARNING on the condition, use
1092 NE_EXPR instead of EQ_EXPR and swap last two arguments on COND_EXPR.
1093
1094 2016-02-19 Patrick Palka <ppalka@gcc.gnu.org>
1095
1096 PR c++/68948
1097 * pt.c (tsubst_baselink): Don't diagnose an invalid constructor
1098 call here.
1099 * semantics.c (finish_call_expr): Don't assume a constructor
1100 call is dependent if only the "this" pointer is dependent. When
1101 building a constructor call, always use a dummy object.
1102
1103 2016-02-19 Jakub Jelinek <jakub@redhat.com>
1104
1105 PR c++/69850
1106 * init.c (build_vec_delete_1): Set TREE_NO_WARNING on the NE_EXPR
1107 condition.
1108 * cp-gimplify.c (cp_fold): Propagate TREE_NO_WARNING from binary
1109 operators if folding preserved the binop, just with different
1110 arguments.
1111
1112 PR c++/67767
1113 * parser.c (cp_parser_std_attribute_spec_seq): Don't assume
1114 attr_spec is always single element chain, chain all the attributes
1115 properly together in the right order.
1116
1117 2016-02-18 Jason Merrill <jason@redhat.com>
1118
1119 * mangle.c (maybe_check_abi_tags): Add for_decl parm. Call
1120 mangle_decl.
1121 (mangle_decl): Call maybe_check_abi_tags for function scope.
1122 (mangle_guard_variable): Call maybe_check_abi_tags here.
1123 (write_guarded_var_name): Not here.
1124
1125 2016-02-17 Jason Merrill <jason@redhat.com>
1126
1127 PR c++/65985
1128 * constexpr.c (build_constexpr_constructor_member_initializers):
1129 Handle an additional STATEMENT_LIST.
1130
1131 PR c++/68585
1132 * constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.
1133
1134 PR c++/68679
1135 * decl2.c (reset_type_linkage_2): Look through member templates.
1136
1137 2016-02-17 Jakub Jelinek <jakub@redhat.com>
1138
1139 PR c++/69850
1140 * init.c (build_delete): Set TREE_NO_WARNING on ifexp.
1141
1142 2016-02-17 Jason Merrill <jason@redhat.com>
1143
1144 PR c++/69842
1145 * method.c (forward_parm): Split out from...
1146 (add_one_base_init): ...here.
1147 * lambda.c (maybe_add_lambda_conv_op): Use it.
1148
1149 2016-02-16 Jason Merrill <jason@redhat.com>
1150
1151 PR c++/10200
1152 PR c++/69753
1153 * call.c, cp-tree.h, name-lookup.c, pt.c, search.c, semantics.c,
1154 tree.c, typeck2.c: Revert earlier changes.
1155 * parser.c (cp_parser_lookup_name): Ignore namespace-scope
1156 non-type templates after -> or .
1157
1158 2016-02-16 Jakub Jelinek <jakub@redhat.com>
1159
1160 PR c/69835
1161 * typeck.c (cp_build_binary_op): Revert 2015-09-09 change.
1162
1163 2016-02-16 Jason Merrill <jason@redhat.com>
1164
1165 PR c++/69657
1166 * name-lookup.c (lookup_qualified_name): Add find_hidden parm.
1167 (set_decl_namespace): Pass it. Complain about finding a hidden friend.
1168 * name-lookup.h: Adjust.
1169
1170 2016-02-16 James Norris <jnorris@codesourcery.com>
1171
1172 * parser.c (cp_parser_oacc_data_clause_deviceptr): Remove checking.
1173 * semantics.c (finish_omp_clauses): Add deviceptr checking.
1174
1175 2016-02-15 Jakub Jelinek <jakub@redhat.com>
1176
1177 PR c++/69658
1178 * init.c (expand_default_init): Only call reshape_init
1179 in the direct-initialization from an initializer list case.
1180
1181 2016-02-15 Jason Merrill <jason@redhat.com>
1182
1183 PR c++/69753
1184 * semantics.c (finish_call_expr): Implicit 'this' does not make
1185 the call dependent.
1186 * search.c (any_dependent_bases_p): Split out...
1187 * name-lookup.c (do_class_using_decl): ...from here.
1188 * call.c (build_new_method_call_1): Don't complain about missing object
1189 if there are dependent bases. Tweak error.
1190 * tree.c (non_static_member_function_p): Remove.
1191 * pt.c (type_dependent_expression_p): A member template of a
1192 dependent type is dependent.
1193 * cp-tree.h: Adjust.
1194
1195 PR c++/68890
1196 * constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.
1197
1198 2016-02-12 Patrick Palka <ppalka@gcc.gnu.org>
1199
1200 PR c++/69098
1201 * pt.c (lookup_and_finish_template_variable): New function,
1202 extracted from ...
1203 (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: ... here. Use it.
1204 (tsubst_qualified_id): Consider that EXPR might be a variable
1205 template.
1206 * typeck.c (check_template_keyword): Don't emit an error
1207 if DECL is a variable template.
1208
1209 2016-02-12 Jakub Jelinek <jakub@redhat.com>
1210
1211 * error.c: Spelling fixes - behaviour -> behavior and
1212 neighbour -> neighbor.
1213 * decl.c: Likewise.
1214 * typeck.c (cp_build_binary_op): Fix up behavior spelling in
1215 diagnostics.
1216 * init.c (build_delete): Likewise.
1217
1218 2016-02-11 Jakub Jelinek <jakub@redhat.com>
1219
1220 PR c/69768
1221 * typeck.c (cp_build_binary_op): cp_fully_fold integer_zerop
1222 arguments for -Waddress warning. Fix up formatting.
1223
1224 2016-02-11 Paolo Carlini <paolo.carlini@oracle.com>
1225
1226 PR c++/68726
1227 * pt.c (lookup_template_class_1): Check tsubst return value for
1228 error_mark_node.
1229
1230 2016-02-10 Jason Merrill <jason@redhat.com>
1231
1232 PR c++/68926
1233 * pt.c (resolve_nondeduced_context): Add complain parm.
1234 (do_auto_deduction): Pass it.
1235 * cvt.c (convert_to_void): Likewise.
1236 * decl.c (cp_finish_decl): Likewise.
1237 * init.c (build_new): Likewise.
1238 * rtti.c (get_tinfo_decl_dynamic): Likewise.
1239 * semantics.c (finish_decltype_type): Likewise.
1240 * typeck.c (decay_conversion): Likewise.
1241 * cp-tree.h: Adjust declaration.
1242 * call.c (standard_conversion): Add complain parm, pass it along.
1243 (implicit_conversion): Pass it.
1244
1245 PR c++/69657
1246 * name-lookup.c (ambiguous_decl): Call remove_hidden_names.
1247 (lookup_name_real_1): Likewise.
1248 (remove_hidden_names): Handle non-functions too.
1249
1250 PR c++/10200
1251 * parser.c (cp_parser_lookup_name): When looking for a template
1252 after . or ->, only consider class templates.
1253 (cp_parser_postfix_dot_deref_expression): Handle the current
1254 instantiation. Remember a dependent object expression.
1255 * typeck2.c (build_x_arrow): Handle the current instantiation.
1256
1257 * ptree.c (debug_tree): Implement for cp_expr.
1258
1259 2016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
1260
1261 PR c++/69139
1262 * parser.c (cp_parser_simple_type_specifier): Make the check
1263 for disambiguating between an 'auto' placeholder and an implicit
1264 template parameter more robust.
1265
1266 2016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
1267
1268 PR c++/69283
1269 PR c++/67835
1270 * decl2.c (mark_used): When given a TEMPLATE_DECL, return after
1271 setting its TREE_USED flag.
1272
1273 2016-02-08 Jason Merrill <jason@redhat.com>
1274
1275 PR c++/69657
1276 * name-lookup.c (do_nonmember_using_decl): Leave anticipated
1277 built-ins alone.
1278
1279 2016-02-08 Jakub Jelinek <jakub@redhat.com>
1280
1281 PR c++/59627
1282 * parser.c (cp_parser_omp_declare_reduction): Set assembler name
1283 of the DECL_OMP_DECLARE_REDUCTION_P decls.
1284
1285 2016-02-08 Marek Polacek <polacek@redhat.com>
1286
1287 PR c++/69688
1288 * constexpr.c (clear_cv_and_fold_caches): Renamed from clear_cv_cache.
1289 Call clear_fold_cache.
1290 * cp-tree.h: Adjust declaration.
1291 * decl.c (finish_enum_value_list): Call clear_cv_and_fold_caches
1292 rather than clear_cv_cache and clear_fold_cache.
1293 * typeck2.c (store_init_value): Call clear_cv_and_fold_caches.
1294
1295 2016-02-08 Jason Merrill <jason@redhat.com>
1296
1297 * cp-tree.h (CONV_FOLD, CONV_BACKEND_CONVERT): New.
1298 * cvt.c (convert): Pass CONV_BACKEND_CONVERT.
1299 (ocp_convert): Use *_maybe_fold.
1300 (cp_convert_to_pointer): Add dofold parameter.
1301 * cp-gimplify.c (cp_fold) [CONVERT_EXPR]: Call convert.
1302
1303 2016-02-05 Martin Sebor <msebor@redhat.com>
1304
1305 PR c++/69662
1306 * init.c (find_field_init): New function.
1307 (warn_placement_new_too_small): Call it. Handle one-element arrays
1308 at ends of structures special.
1309
1310 2016-02-05 Jason Merrill <jason@redhat.com>
1311
1312 PR c++/68948
1313 * semantics.c (finish_expr_stmt): If expr is error_mark_node,
1314 make sure we've seen_error().
1315
1316 2016-02-05 Patrick Palka <ppalka@gcc.gnu.org>
1317
1318 PR c++/68948
1319 * pt.c (tsubst_baselink): Diagnose an invalid constructor call
1320 if lookup_fnfields returns NULL_TREE and the name being looked
1321 up has the form A::A.
1322
1323 2016-02-04 Patrick Palka <ppalka@gcc.gnu.org>
1324
1325 * constexpr.c (cxx_eval_binary_expression): Fold equality
1326 comparisons involving PTRMEM_CSTs.
1327
1328 2016-02-04 Jakub Jelinek <jakub@redhat.com>
1329
1330 * class.c (find_flexarrays): Don't declare dom variable.
1331 (diagnose_flexarray): Likewise.
1332
1333 2016-02-02 Martain Sebor <msebor@redhat.com>
1334
1335 PR c++/69251
1336 PR c++/69253
1337 PR c++/69290
1338 PR c++/69277
1339 PR c++/69349
1340 * class.c (walk_subobject_offsets): Avoid testing the upper bound
1341 of a flexible array member for equality to null.
1342 (find_flexarrays): Remove spurious whitespace introduced in r231665.
1343 (diagnose_flexarrays): Avoid checking the upper bound of arrays.
1344 (check_flexarrays): Same.
1345 * decl.c (compute_array_index_type): Avoid special case for flexible
1346 array members.
1347 (grokdeclarator): Avoid calling compute_array_index_type for flexible
1348 array members.
1349 * error.c (dump_type_suffix): Revert changes introduced in r231665
1350 and rendered unnecessary by the changes above.
1351 * pt.c (tsubst): Same.
1352 * tree.c (build_ctor_subob_ref): Handle flexible array members.
1353 * typeck2.c (digest_init_r): Revert changes introduced in r231665.
1354 (process_init_constructor_array): Same.
1355 (process_init_constructor_record): Same.
1356
1357 2016-02-03 Patrick Palka <ppalka@gcc.gnu.org>
1358
1359 PR c++/69056
1360 * pt.c (try_one_overload): Handle comparing argument packs so
1361 that there is no conflict if we deduced more arguments of an
1362 argument pack than were explicitly specified.
1363
1364 2016-01-31 Jakub Jelinek <jakub@redhat.com>
1365 Jason Merrill <jason@redhat.com>
1366
1367 PR c++/68763
1368 * tree.c (strip_typedefs) [FUNCTION_TYPE]: Avoid building a new
1369 function type if nothing is changing.
1370
1371 2016-01-31 Jason Merrill <jason@redhat.com>
1372
1373 PR c++/69009
1374 * pt.c (partial_specialization_p, impartial_args): New.
1375 (instantiate_decl): Call impartial_args.
1376
1377 * mangle.c (maybe_check_abi_tags): New.
1378 (write_guarded_var_name): Call it.
1379 (mangle_ref_init_variable): Call check_abi_tags.
1380
1381 * pt.c (lookup_template_class_1): Don't share TYPE_ATTRIBUTES
1382 between template and instantiation.
1383
1384 2016-01-29 Jakub Jelinek <jakub@redhat.com>
1385
1386 PR debug/66869
1387 * decl.c (wrapup_globals_for_namespace): Warn about unused static
1388 function declarations.
1389
1390 2016-01-29 Marek Polacek <polacek@redhat.com>
1391
1392 PR c++/69509
1393 PR c++/69516
1394 * constexpr.c (cxx_eval_array_reference): Give the "array subscript
1395 out of bound" error earlier.
1396 * init.c (build_vec_init): Change NE_EXPR into GT_EXPR. Update the
1397 commentary.
1398
1399 2016-01-29 Patrick Palka <ppalka@gcc.gnu.org>
1400
1401 * name-lookup.c (begin_scope): After reusing a cp_binding_level
1402 structure, update free_binding_level before the structure's
1403 level_chain field gets cleared, not after.
1404
1405 2016-01-28 Jason Merrill <jason@redhat.com>
1406
1407 PR c++/67407
1408 * search.c (dfs_walk_once, dfs_walk_once_r)
1409 (dfs_walk_once_accessible_r, dfs_walk_once_accessible): Use
1410 hash_set instead of BINFO_MARKED.
1411 (dfs_unmark_r): Remove.
1412
1413 2016-01-28 Patrick Palka <ppalka@gcc.gnu.org>
1414
1415 PR c++/24208
1416 * parser.c (LEXER_DEBUGGING_ENABLED_P): New macro.
1417 (cp_lexer_debugging_p): Use it.
1418 (cp_lexer_start_debugging): Likewise.
1419 (cp_lexer_stop_debugging): Likewise.
1420
1421 2016-01-27 Marek Polacek <polacek@redhat.com>
1422
1423 PR c/68062
1424 * typeck.c (cp_build_binary_op): Promote operand to unsigned, if
1425 needed. Add -Wsign-compare warning.
1426
1427 2016-01-27 Ryan Burn <contact@rnburn.com>
1428
1429 PR cilkplus/69267
1430 * cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): Removed
1431 superfluous post_p argument in call to
1432 cilk_gimplify_call_params_in_spawned_fn.
1433
1434 2016-01-27 Marek Polacek <polacek@redhat.com>
1435
1436 PR c++/69379
1437 * constexpr.c (cxx_eval_constant_expression): Handle PTRMEM_CSTs
1438 wrapped in NOP_EXPRs.
1439
1440 2016-01-27 Martin Sebor <msebor@redhat.com>
1441
1442 PR c++/69317
1443 * mangle.c (mangle_decl): Reference the correct (saved) version
1444 of the ABI in -Wabi diagnostics.
1445
1446 2016-01-27 Marek Polacek <polacek@redhat.com>
1447
1448 PR c++/69496
1449 * constexpr.c (cxx_eval_array_reference): Evaluate the number of
1450 elements of the array.
1451
1452 2016-01-26 Jason Merrill <jason@redhat.com>
1453
1454 PR c++/68949
1455 * constexpr.c (register_constexpr_fundef): Keep the un-massaged body.
1456 (cxx_eval_call_expression): Don't look through clones.
1457 * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
1458 * semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
1459 maybe-in-charge *tor.
1460
1461 2016-01-26 Jason Merrill <jason@redhat.com>
1462
1463 PR c++/68782
1464 * constexpr.c (cxx_eval_bare_aggregate): Update TREE_CONSTANT
1465 and TREE_SIDE_EFFECTS.
1466 (cxx_eval_constant_expression) [CONSTRUCTOR]: Call
1467 verify_constructor_flags.
1468
1469 2016-01-26 Jakub Jelinek <jakub@redhat.com>
1470
1471 PR c++/68357
1472 * cp-gimplify.c (cp_fold): If some operand folds to error_mark_node,
1473 return error_mark_node instead of building trees with error_mark_node
1474 operands.
1475
1476 2016-01-26 David Malcolm <dmalcolm@redhat.com>
1477
1478 PR other/69006
1479 * error.c (print_instantiation_partial_context_line): Add missing
1480 newlines from output for the t == NULL case.
1481 (print_instantiation_partial_context): Remove call to pp_newline.
1482
1483 2016-01-24 Patrick Palka <ppalka@gcc.gnu.org>
1484
1485 Revert:
1486 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
1487
1488 PR c++/11858
1489 PR c++/24663
1490 PR c++/24664
1491 * decl.c (grokdeclarator): Don't decay array parameter type to
1492 a pointer type if it's dependent.
1493 (grokparms): Invoke strip_top_quals instead of directly invoking
1494 cp_build_qualified_type.
1495 * pt.c (decay_dependent_array_parm_type): New static function.
1496 (type_unification_real): Call decay_dependent_array_parm_type
1497 to decay a dependent array parameter type to its corresponding
1498 pointer type before unification.
1499 (more_specialized_fn): Likewise.
1500 (get_bindings): Likewise.
1501 * tree.c (cp_build_qualified_type): Trivial typofix in
1502 documentation.
1503
1504 2016-01-23 Martin Sebor <msebor@redhat.com>
1505
1506 PR c++/58109
1507 PR c++/69022
1508 * decl2.c (is_late_template_attribute): Handle dependent argument
1509 to attribute align and attribute vector_size.
1510
1511 2016-01-21 Jason Merrill <jason@redhat.com>
1512
1513 PR c++/69392
1514 * lambda.c (lambda_capture_field_type): Handle 'this' specially
1515 for init-capture, too.
1516
1517 PR c++/65687
1518 * decl.c (type_is_deprecated): Don't look into a typedef.
1519
1520 PR c++/40751
1521 PR c++/64987
1522 * decl.c (copy_type_enum): Respect TYPE_USER_ALIGN.
1523
1524 PR c++/43407
1525 * decl.c (start_enum): Add attributes parameter.
1526 * parser.c (cp_parser_enum_specifier): Pass it.
1527 * pt.c (lookup_template_class_1): Pass it.
1528 * cp-tree.h: Adjust.
1529
1530 2016-01-19 Jason Merrill <jason@redhat.com>
1531
1532 PR c++/59759
1533 * pt.c (convert_template_argument): Handle VAR_DECL properly.
1534
1535 2016-01-19 Marek Polacek <polacek@redhat.com>
1536
1537 PR c++/68586
1538 * constexpr.c (clear_cv_cache): New.
1539 * cp-gimplify.c (clear_fold_cache): New.
1540 * cp-tree.h (clear_cv_cache, clear_fold_cache): Declare.
1541 * decl.c (finish_enum_value_list): Call them.
1542
1543 PR c++/68965
1544 * pt.c (tsubst_copy): Mark elements in expanded vector as used.
1545
1546 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
1547
1548 PR c++/11858
1549 PR c++/24663
1550 PR c++/24664
1551 * decl.c (grokdeclarator): Don't decay array parameter type to
1552 a pointer type if it's dependent.
1553 (grokparms): Invoke strip_top_quals instead of directly invoking
1554 cp_build_qualified_type.
1555 * pt.c (decay_dependent_array_parm_type): New static function.
1556 (type_unification_real): Call decay_dependent_array_parm_type
1557 to decay a dependent array parameter type to its corresponding
1558 pointer type before unification.
1559 (more_specialized_fn): Likewise.
1560 (get_bindings): Likewise.
1561 * tree.c (cp_build_qualified_type): Trivial typofix in
1562 documentation.
1563
1564 2016-01-18 Jason Merrill <jason@redhat.com>
1565
1566 * cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input.
1567
1568 * cp-gimplify.c (cp_fold): Remove unnecessary special cases.
1569
1570 PR c++/68767
1571 * cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify. Do fold COND_EXPR.
1572 (contains_label_1, contains_label_p): Remove.
1573
1574 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
1575
1576 PR c++/69091
1577 * pt.c (type_dependent_expression_p): For a function template
1578 specialization, a type is dependent iff any of its template
1579 arguments are.
1580
1581 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
1582
1583 * cp-array-notation.c (cp_expand_cond_array_notations): Return
1584 error_mark_node only if find_rank failed, not if it was
1585 successful.
1586
1587 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
1588
1589 PR c++/68936
1590 * tree.c (build_min_non_dep_call_vec): Don't retain the
1591 KOENIG_LOOKUP_P flag of the non-dependent expression that's
1592 been built.
1593 (build_min_non_dep_op_overload): Instead, do it here.
1594
1595 2016-01-15 Jakub Jelinek <jakub@redhat.com>
1596
1597 PR bootstrap/68271
1598 * parser.h (cp_token): Remove pragma_kind field. Add comment
1599 with number of unused bits.
1600 * parser.c (eof_token): Remove pragma_kind field initializer.
1601 (cp_lexer_get_preprocessor_token): Don't set pragma_kind
1602 field, don't clear CPP_PRAGMA u.value.
1603 (cp_parser_pragma_kind): New function.
1604 (cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel,
1605 cp_parser_omp_construct, cp_parser_initial_pragma,
1606 cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing
1607 pragma_kind field.
1608
1609 2016-01-15 Jason Merrill <jason@redhat.com>
1610
1611 PR c++/68847
1612 * call.c (build_cxx_call): Use fold_non_dependent_expr.
1613
1614 * typeck2.c (cxx_incomplete_type_diagnostic): Use the location of
1615 value.
1616
1617 PR c++/69257
1618 * typeck.c (decay_conversion): Don't call mark_rvalue_use for
1619 array/function-to-pointer conversion. Call
1620 complete_type_or_maybe_complain for lvalue-to-rvalue conversion.
1621 * call.c (convert_like_real): Print call context if
1622 decay_conversion errors.
1623
1624 2016-01-14 Tom de Vries <tom@codesourcery.com>
1625
1626 PR tree-optimization/68773
1627 * parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
1628 set force_output.
1629
1630 2016-01-14 Jason Merrill <jason@redhat.com>
1631
1632 PR c++/69261
1633 * constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
1634
1635 2016-01-12 Marek Polacek <polacek@redhat.com>
1636
1637 PR c++/68979
1638 * constexpr.c (cxx_eval_check_shift_p): Use permerror rather than
1639 error_at and adjust the return value.
1640
1641 2016-01-12 Jakub Jelinek <jakub@redhat.com>
1642
1643 PR objc++/68511
1644 PR c++/69213
1645 * cp-gimplify.c (cp_gimplify_expr) <case INIT_EXPR>: Don't return
1646 GS_ERROR whenever seen_error (), only if *expr_p contains
1647 cilk spawn stmt, but cilk_detect_spawn_and_unwrap failed.
1648
1649 PR c++/66808
1650 PR c++/69000
1651 * pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.
1652
1653 2016-01-11 Jason Merrill <jason@redhat.com>
1654
1655 PR c++/69131
1656 * method.c (walk_field_subobs): Add dtor_from_ctor parm.
1657 (process_subob_fn): Likewise. Don't consider triviality if true.
1658 (synthesize_method_walk): Pass it.
1659
1660 2016-01-11 David Malcolm <dmalcolm@redhat.com>
1661
1662 PR c++/68795
1663 * parser.c (cp_parser_postfix_expression): Initialize
1664 close_paren_loc to UNKNOWN_LOCATION; only use it if
1665 it has been written to by
1666 cp_parser_parenthesized_expression_list.
1667 (cp_parser_parenthesized_expression_list): Document the behavior
1668 with respect to the CLOSE_PAREN_LOC param.
1669
1670 2016-01-11 Jakub Jelinek <jakub@redhat.com>
1671
1672 PR c++/69211
1673 * cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
1674 folded operands have side-effects, but folding changed any of them,
1675 build a new tree with the folded operands instead of returning the
1676 unfolded tree.
1677
1678 2016-01-09 Marek Polacek <polacek@redhat.com>
1679
1680 PR c++/69113
1681 * decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set.
1682
1683 2016-01-09 Jakub Jelinek <jakub@redhat.com>
1684
1685 PR c++/69164
1686 * class.c (layout_class_type): Use copy_node to copy FIELD_DECLs.
1687
1688 2016-01-08 Jason Merrill <jason@redhat.com>
1689
1690 PR c++/69158
1691 * constexpr.c (cxx_fold_indirect_ref): Handle array type differing
1692 in completion.
1693
1694 2016-01-08 Marek Polacek <polacek@redhat.com>
1695
1696 PR c++/68449
1697 * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.
1698
1699 2016-01-08 Jason Merrill <jason@redhat.com>
1700
1701 * constexpr.c (cxx_eval_call_expression): Remove convert_to_void
1702 workaround.
1703
1704 PR c++/68983
1705 PR c++/67557
1706 * cvt.c (convert_to_void): Don't strip a TARGET_EXPR of
1707 TREE_ADDRESSABLE type.
1708
1709 PR c++/68983
1710 PR c++/67557
1711 * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.
1712
1713 2016-01-05 Nathan Sidwell <nathan@acm.org>
1714
1715 PR c++/58583
1716 * pt.c (build_non_dependent_expr): Don't try a checking fold when
1717 parsing an nsdmi.
1718
1719 2016-01-04 Jakub Jelinek <jakub@redhat.com>
1720
1721 Update copyright years.
1722 \f
1723 Copyright (C) 2016 Free Software Foundation, Inc.
1724
1725 Copying and distribution of this file, with or without modification,
1726 are permitted in any medium without royalty provided the copyright
1727 notice and this notice are preserved.