65b5ed9792b234171bb0bb8b2c8cdf3c33feed52
[gcc.git] / gcc / cp / ChangeLog
1 2015-04-16 Paolo Carlini <paolo.carlini@oracle.com>
2
3 * call.c (build_op_delete_call, build_over_call): Check mark_used
4 return value.
5 * class.c (resolve_address_of_overloaded_function): Likewise.
6 * decl.c (cxx_maybe_build_cleanup): Likewise.
7 * pt.c (gen_elem_of_pack_expansion_instantiation, tsubst_baselink,
8 tsubst_qualified_id, tsubst_copy, tsubst_copy_and_build): Likewise.
9 * rtti.c (build_dynamic_cast_1): Likewise.
10 * semantics.c (process_outer_var_ref): Likewise.
11 * typeck.c (build_class_member_access_expr,
12 cp_build_function_call_vec, cp_build_addr_expr_1): Likewise.
13
14 2015-04-15 Jason Merrill <jason@redhat.com>
15
16 * constexpr.c (cxx_eval_store_expression): Ignore clobbers.
17 (build_constexpr_constructor_member_initializers): Loop to find
18 the BIND_EXPR.
19 * decl.c (start_preparsed_function): Clobber the object at the
20 beginning of a constructor.
21
22 * decl.c (grokmethod): Only set DECL_COMDAT if TREE_PUBLIC is set.
23 * method.c (implicitly_declare_fn): Likewise.
24 * decl2.c (vague_linkage_p): Check TREE_PUBLIC first.
25
26 * decl2.c (determine_visibility): Use get_template_info.
27
28 2015-04-15 Jason Merrill <jason@redhat.com>
29 Marek Polacek <polacek@redhat.com>
30
31 PR c++/65727
32 * lambda.c (lambda_expr_this_capture): In unevaluated context go
33 through the normal loop, just don't capture.
34 (maybe_resolve_dummy): Handle null return.
35
36 2015-04-15 Paolo Carlini <paolo.carlini@oracle.com>
37
38 * call.c (enforce_access): Emit error + inform.
39
40 2015-04-15 Marek Polacek <polacek@redhat.com>
41
42 * constexpr.c (use_new_call): Remove #define.
43 (lookup_parameter_binding): Remove function.
44 (cxx_bind_parameters_in_call): Remove unused code.
45 (cxx_eval_call_expression): Likewise.
46 (cxx_eval_constant_expression): Likewise.
47
48 2015-04-14 Mikhail Maltsev <maltsevm@gmail.com>
49
50 * tree.c (replace_placeholders_t): Remove unused type.
51 (replace_placeholders): Remove unused pset.
52
53 2015-04-14 Jason Merrill <jason@redhat.com>
54
55 * pt.c (lookup_template_class_1): Use coerce_innermost_template_parms.
56
57 PR c++/65695
58 * cvt.c (cp_fold_convert): Avoid wrapping PTRMEM_CST in NOP_EXPR.
59
60 PR c++/65721
61 * name-lookup.c (do_class_using_decl): Complain about specifying
62 the current class even if there are dependent bases.
63
64 2015-04-14 David Krauss <david_work@me.com>
65
66 PR c++/59766
67 * decl.c (grokdeclarator): Do not flag friends with deduced return.
68
69 2015-04-14 Momchil Velikov <momchil.velikov@gmail.com>
70 Jason Merrill <jason@redhat.com>
71
72 PR c++/60994
73 * parser.c (cp_parser_class_name): Add enum_ok parameter.
74 (cp_parser_qualifying_entity): Use it instead of cp_parser_type_name.
75 (cp_parser_diagnose_invalid_type_name): Don't assume a template is
76 a class template.
77
78 2015-04-12 Jakub Jelinek <jakub@redhat.com>
79
80 PR c++/65736
81 * constexpr.c (cxx_eval_pointer_plus_expression): Don't fold for VLAs,
82 don't fold if op01 isn't divisible by TYPE_SIZE_UNIT. Convert
83 the expression to the original type at the end.
84
85 2015-04-09 Jakub Jelinek <jakub@redhat.com>
86
87 PR c++/65690
88 * tree.c (cp_build_qualified_type_real): Copy TYPE_ALIGN and
89 TYPE_USER_ALIGN.
90
91 PR c++/65690
92 * tree.c (build_cplus_array_type): Layout type before variants are
93 set, but copy over TYPE_SIZE and TYPE_SIZE_UNIT from the main
94 variant.
95
96 2015-04-03 Paolo Carlini <paolo.carlini@oracle.com>
97
98 PR c++/64085
99 * lambda.c (add_capture): Use dependent_type_p for capture by
100 reference too.
101
102 2015-04-02 Marek Polacek <polacek@redhat.com>
103
104 PR c++/65642
105 * constexpr.c (cxx_eval_pointer_plus_expression): Call
106 cxx_eval_constant_expression on the first operand.
107
108 2015-04-01 Jason Merrill <jason@redhat.com>
109
110 PR c++/65625
111 * decl.c (make_typename_type): Handle seeing a variable template.
112
113 2015-04-01 Paolo Carlini <paolo.carlini@oracle.com>
114
115 PR c++/56100
116 * pt.c (instantiating_current_function_p): New.
117 * name-lookup.c (pushdecl_maybe_friend_1): Use it.
118 * cp-tree.h (instantiating_current_function_p): Declare.
119
120 2015-04-01 Jason Merrill <jason@redhat.com>
121
122 PR c++/65646
123 * decl.c (grokvardecl): Don't call check_explicit_specialization
124 for non-template members of a class template.
125
126 2015-04-01 Marek Polacek <polacek@redhat.com>
127
128 PR c++/65554
129 * class.c (finish_struct): Require that the second field of a
130 user-defined initializer_list be of size type.
131
132 2015-03-31 Marek Polacek <polacek@redhat.com>
133
134 PR c++/65390
135 * tree.c (build_cplus_array_type): Use dependent_type_p rather than
136 checking for constness.
137
138 2015-03-30 Marek Polacek <polacek@redhat.com>
139
140 PR c++/65398
141 * constexpr.c (cxx_fold_indirect_ref): Don't perform the
142 *(&A[i] p+ j) => A[i + j] transformation here.
143 (cxx_eval_pointer_plus_expression): New function.
144 (cxx_eval_constant_expression): Use it here.
145
146 2015-03-27 Tobias Burnus <burnus@net-b.de>
147
148 PR c/65586
149 * parser.c (cp_parser_omp_for, cp_parser_omp_parallel,
150 cp_parser_omp_distribute, cp_parser_omp_teams, cp_parser_omp_target,
151 cp_parser_omp_declare): Don't show error for skipped omp pragmas with
152 -fopenmp-simd.
153
154 2015-03-27 Marek Polacek <polacek@redhat.com>
155
156 PR c++/65556
157 * semantics.c (finish_switch_cond): If the unlowered type is not an
158 enum, use the type of the condition.
159
160 2015-03-27 Jason Merrill <jason@redhat.com>
161
162 PR c++/65509
163 * decl.c (make_rtl_for_nonlocal_decl): Don't defer static
164 constants.
165
166 2015-03-26 Mikhail Maltsev <maltsevm@gmail.com>
167
168 PR c++/65154
169 * init.c (build_vec_init): Fix initializing aggregates
170 with empty init list.
171
172 2015-03-26 Jason Merrill <jason@redhat.com>
173
174 PR c++/65525
175 * constexpr.c (potential_constant_expression_1): Handle MEM_REF.
176
177 2015-03-25 Marek Polacek <polacek@redhat.com>
178
179 PR c++/65558
180 * name-lookup.c (handle_namespace_attrs): Ignore abi_tag attribute
181 on an anonymous namespace.
182
183 2015-03-25 Marek Polacek <polacek@redhat.com>
184
185 PR c++/61670
186 * class.c (remove_zero_width_bit_fields): Check for null DECL_SIZE.
187
188 2015-03-24 Jason Merrill <jason@redhat.com>
189
190 PR c++/65046
191 * cp-tree.h (NAMESPACE_IS_INLINE): Remove.
192 * parser.c (cp_parser_namespace_definition): Don't set it.
193 * name-lookup.c (handle_namespace_attrs): Check
194 DECL_NAMESPACE_ASSOCIATIONS instead.
195
196 PR c++/65498
197 * pt.c (get_mostly_instantiated_function_type): Just return the
198 type of the partially instantiated template in DECL_TI_TEMPLATE.
199
200 2015-03-20 Marek Polacek <polacek@redhat.com>
201
202 PR c++/65398
203 * constexpr.c (cxx_fold_indirect_ref): Transform *(&A[i] p+ j) into
204 A[i + j].
205
206 2015-03-20 Marek Polacek <polacek@redhat.com>
207
208 PR c++/65072
209 * typeck.c (lookup_anon_field): Make sure we're dealing with the main
210 variant.
211
212 2015-03-19 Jason Merrill <jason@redhat.com>
213
214 PR c++/65046
215 Automatically propagate ABI tags to variables and functions
216 from their (return) type.
217 * class.c (check_tag): Handle variables and functions.
218 (mark_or_check_attr_tags): Split out from find_abi_tags_r.
219 (mark_or_check_tags): Likewise.
220 (mark_abi_tags): Use it. Rename from mark_type_abi_tags.
221 (check_abi_tags): Add single argument overload for decls.
222 Handle inheriting tags for decls.
223 * mangle.c (write_mangled_name): Call it.
224 (mangle_return_type_p): Split out from write_encoding.
225 (unmangled_name_p): Split out from write_mangled_name.
226 (write_mangled_name): Ignore abi_tag on namespace.
227 * cp-tree.h (NAMESPACE_IS_INLINE): Replace NAMESPACE_ABI_TAG.
228 * parser.c (cp_parser_namespace_definition): Set it.
229 * name-lookup.c (handle_namespace_attrs): Use arguments. Warn
230 about abi_tag attribute on non-inline namespace.
231 * tree.c (check_abi_tag_args): Split out from handle_abi_tag_attribute.
232 (handle_abi_tag_attribute): Allow tags on variables.
233
234 2015-03-19 Jakub Jelinek <jakub@redhat.com>
235
236 * decl2.c (cplus_decl_attributes): Also add "omp declare target"
237 attribute for DECL_EXTERNAL VAR_DECLs.
238
239 2015-03-18 Paolo Carlini <paolo.carlini@oracle.com>
240
241 PR c++/65340
242 * call.c (build_over_call): Pass the tsubst_flags_t argument to
243 mark_used.
244 * decl2.c (mark_used): Inline the require_deduced_type call and
245 guard the error call.
246
247 2015-03-16 Jason Merrill <jason@redhat.com>
248
249 PR c++/65061
250 * parser.c (cp_parser_template_name): Call strip_using_decl.
251
252 2015-03-16 Marek Polacek <polacek@redhat.com>
253
254 DR 1688
255 PR c++/65327
256 * decl.c (grokdeclarator): Allow volatile and constexpr together.
257
258 2015-03-12 Paolo Carlini <paolo.carlini@oracle.com>
259
260 PR c++/65323
261 * decl.c (check_default_argument): Don't call
262 maybe_warn_zero_as_null_pointer_constant.
263
264 2015-03-11 Aldy Hernandez <aldyh@redhat.com>
265
266 * cp-gimplify.c (simple_empty_class_p): New.
267 * cp-gimplify.c (cp_gimplify_expr): Handle RETURN_EXPR. Abstract
268 the code for empty class copies into simple_empty_class_p, and
269 adapt it to handle COMPOUND_EXPRs.
270
271 2015-03-10 Paolo Carlini <paolo.carlini@oracle.com>
272
273 PR c++/65370
274 * decl.c (duplicate_decls): Call check_redeclaration_no_default_args
275 only if the location of newdecl doesn't match the location of olddecl.
276
277 2015-03-10 Jakub Jelinek <jakub@redhat.com>
278
279 PR c++/65127
280 * parser.c (parsing_nsdmi): Don't return true if current_class_ptr
281 is not a PARM_DECL.
282
283 2015-03-10 Jason Merrill <jason@redhat.com>
284
285 PR c++/65333
286 DR 1558
287 * pt.c (dependent_type_p_r): Check both class and alias template args.
288
289 2015-03-10 Jakub Jelinek <jakub@redhat.com>
290
291 PR c/65120
292 * parser.c (cp_parser_binary_expression): Check for tcc_comparison
293 before preparing arguments to warn_logical_not_parentheses.
294 Use maybe_constant_value on rhs.
295
296 2015-03-09 Jason Merrill <jason@redhat.com>
297
298 PR c++/65339
299 * call.c: Don't call maybe_resolve_dummy when calling a constructor.
300
301 2015-03-09 Jakub Jelinek <jakub@redhat.com>
302
303 PR c/65120
304 * parser.c (cp_parser_binary_expression): Don't warn for
305 !!x == y or !b == y where b is bool.
306
307 2015-03-06 Aldy Hernandez <aldyh@redhat.com>
308
309 * ptree.c (cxx_print_lambda_node): New.
310 (cxx_print_xnode): Handle LAMBDA_EXPR.
311
312 2015-03-03 Aldy Hernandez <aldyh@redhat.com>
313
314 PR c++/65295
315 * constexpr.c (cxx_eval_constant_expression): Remove assert in
316 RESULT_DECL handling.
317
318 2015-02-26 Marek Polacek <polacek@redhat.com>
319
320 PR c++/65202
321 * constexpr.c (cxx_eval_constant_expression): Don't evaluate
322 a RETURN_EXPR if its operand is null.
323
324 2015-02-25 Jason Merrill <jason@redhat.com>
325
326 PR c++/65209
327 * decl2.c (constrain_visibility) [VISIBILITY_ANON]: Clear
328 DECL_COMDAT.
329 (constrain_visibility_for_template): Handle reference arguments.
330
331 PR debug/58315
332 * decl.c (start_preparsed_function): Use create_artificial_label
333 for cdtor_label.
334
335 2015-02-17 Paolo Carlini <paolo.carlini@oracle.com>
336 Jakub Jelinek <jakub@redhat.com>
337
338 PR c++/65075
339 * constexpr.c (check_constexpr_bind_expr_vars): Allow
340 implicit typedefs for lambda types.
341
342 2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
343
344 PR c++/60894
345 * decl.c (lookup_and_check_tag): Use strip_using_decl.
346
347 2015-02-13 Jason Merrill <jason@redhat.com>
348
349 PR c++/65054
350 * pt.c (template_args_equal): Look through conversions here.
351 * tree.c (cp_tree_equal): Not here.
352
353 2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
354
355 PR c++/60211
356 * parser.c (cp_parser_pragma): Diagnose PRAGMA_IVDEP at
357 pragma_external context.
358
359 2015-02-13 Jason Merrill <jason@redhat.com>
360
361 PR c++/65051
362 * call.c (reference_binding): Don't look for bad conversion
363 if TO is incomplete.
364
365 2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
366
367 PR c++/64970
368 * decl.c (make_typename_type): Pass tsubst_flags_t argument
369 to lookup_template_class.
370
371 2015-02-13 Jakub Jelinek <jakub@redhat.com>
372
373 PR ipa/65034
374 * decl.c (start_preparsed_function): Use void_type_node instead
375 of NULL_TREE as LABEL_DECL type.
376
377 2015-02-12 Jason Merrill <jason@redhat.com>
378
379 PR c++/64898
380 * mangle.c (write_mangled_name): Fix test for variable template
381 instantiation.
382
383 * decl.c (begin_destructor_body): Condition clobber on
384 -flifetime-dse.
385
386 2015-02-12 Andrea Azzarone <azzaronea@gmail.com>
387
388 PR c++/64959
389 * parser.c (lookup_literal_operator): Return all candidates.
390 (cp_parser_userdef_char_literal): Simplify error handling.
391 (cp_parser_userdef_numeric_literal): Pass tf_warning_or_error.
392 (cp_parser_userdef_string_literal): Pass tf_warning_or_error.
393 Also give higher priority to standard string UDL operator.
394
395 2015-02-12 Jakub Jelinek <jakub@redhat.com>
396
397 PR debug/55541
398 * cp-tree.h (BLOCK_OUTER_CURLY_BRACE_P): Define.
399 * decl.c (poplevel): If functionbody, try not to create an extra
400 BLOCK for function body and use subblocks as that, if it is non-NULL
401 and doesn't have siblings. Set BLOCK_OUTER_CURLY_BRACE_P flag.
402 (outer_curly_brace_block): Use BLOCK_OUTER_CURLY_BRACE_P flag.
403
404 PR sanitizer/64984
405 * except.c (check_noexcept_r): Return NULL for internal
406 calls.
407
408 2015-02-10 Jason Merrill <jason@redhat.com>
409
410 PR c++/64994
411 * constexpr.c (cxx_eval_call_expression): Walk the clone list.
412
413 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
414
415 PR ipa/64982
416 * method.c (use_thunk): Do not check for stdarg thunks.
417
418 2015-02-06 Jason Merrill <jason@redhat.com>
419
420 PR c++/64899
421 * init.c (build_vec_init): Handle default-initialized array with
422 constexpr default constructor.
423
424 2015-02-04 Jakub Jelinek <jakub@redhat.com>
425
426 PR c/64824
427 PR c/64868
428 * parser.c (cp_parser_omp_atomic): Handle RDIV_EXPR.
429
430 2015-02-03 Paolo Carlini <paolo.carlini@oracle.com>
431
432 PR c++/64877
433 * typeck.c (cp_build_binary_op): Avoid spurious -Waddress warnings
434 for generated expressions.
435
436 2015-02-02 Ville Voutilainen <ville.voutilainen@gmail.com>
437
438 PR c++/64901
439 * decl.c (duplicate_decls): Also duplicate DECL_FINAL_P and
440 DECL_OVERRIDE_P.
441
442 2015-02-02 Jason Merrill <jason@redhat.com>
443
444 * tree.c (handle_abi_tag_attribute): Diagnose invalid arguments.
445
446 2015-01-30 Joseph Myers <joseph@codesourcery.com>
447
448 * class.c, except.c, parser.c, pt.c: All callers of fatal_error
449 changed to pass input_location as first argument.
450
451 2015-01-29 Jakub Jelinek <jakub@redhat.com>
452
453 PR c++/64717
454 * cp-ubsan.c (cp_ubsan_instrument_vptr): Don't wrap vptr
455 into SAVE_EXPR.
456
457 2015-01-29 Jason Merrill <jason@redhat.com>
458
459 PR c++/49508
460 * semantics.c (finish_return_stmt): Suppress -Wreturn-type on
461 erroneous return statement.
462
463 PR c++/64521
464 * repo.c (repo_emit_p): It's OK for a clone to be extern at this
465 point.
466
467 2015-01-27 Caroline Tice <cmtice@google.com>
468
469 Committing VTV Cywin/Ming patch for Patrick Wollgast
470 * vtable-class-hierarchy.cc (vtv_generate_init_routine): Add
471 check for not TARGET_PECOFF at the VTV_PREINIT_PRIORITY checks.
472
473 2015-01-27 Jason Merrill <jason@redhat.com>
474
475 PR c++/58597
476 * lambda.c (maybe_add_lambda_conv_op): Check cfun rather than
477 current_function_decl.
478
479 PR c++/63889
480 * pt.c (finish_template_variable): Move from semantics.c.
481 Handle multiple template arg levels. Handle coercion here.
482 (lookup_template_variable): Not here.
483
484 2015-01-23 Jason Merrill <jason@redhat.com>
485
486 PR c++/64314
487 PR c++/57510
488 * typeck2.c (split_nonconstant_init_1): Remove a sub-CONSTRUCTOR
489 that has been completely split out.
490
491 PR c++/64701
492 * constexpr.c (cxx_eval_constant_expression): Don't crash on C++
493 statement codes.
494
495 PR c++/64727
496 * constexpr.c (cxx_eval_constant_expression): Allow for lvalue use
497 of CONST_DECL.
498
499 2015-01-21 Jason Merrill <jason@redhat.com>
500
501 PR c++/64603
502 * constexpr.c (cxx_eval_constant_expression): Only shortcut
503 constant CONSTRUCTORs.
504
505 PR c++/64647
506 * constexpr.c (ensure_literal_type_for_constexpr_object): Don't
507 give a hard error in a template instantiation.
508
509 2015-01-21 Richard Biener <rguenther@suse.de>
510
511 PR middle-end/64313
512 * decl.c (duplicate_decls): Call set_builtin_decl_declared_p
513 for builtins the user declared correctly.
514
515 2015-01-16 Paolo Carlini <paolo.carlini@oracle.com>
516
517 PR c++/58614
518 * pt.c (unify): When BRACE_ENCLOSED_INITIALIZER_P (arg), handle
519 TREE_TYPE (elt) == error_mark_node.
520
521 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
522
523 PR tree-optimization/62053
524 * tree.c (build_cplus_array_type): Layout type after variants are set.
525
526 2015-01-15 Jakub Jelinek <jakub@redhat.com>
527
528 * cp-gimplify.c (cp_genericize_r): Call
529 cp_ubsan_maybe_instrument_member_call for member calls.
530 (cp_ubsan_check_member_access_r): New function.
531 (cp_genericize_tree): Call cp_ubsan_instrument_member_accesses.
532 * cp-tree.h (cp_ubsan_maybe_instrument_member_call,
533 cp_ubsan_instrument_member_accesses,
534 cp_ubsan_maybe_instrument_downcast,
535 cp_ubsan_maybe_instrument_cast_to_vbase): New prototypes.
536 * cp-ubsan.c: New file.
537 * Make-lang.in (CXX_AND_OBJCXX_OBJS): Add cp/cp-ubsan.o.
538 * constexpr.c (cxx_eval_call_expression): Return void_node
539 for IFN_UBSAN_VPTR.
540 (potential_constant_expression_1): Return true for
541 UBSAN_NULL, UBSAN_BOUNDS and UBSAN_VPTR internal calls.
542 * typeck.c (build_class_member_access_expr): Provide locus
543 for COMPONENT_REFs.
544 (build_static_cast_1): Instrument downcasts.
545 * class.c (build_base_path): For -fsanitize=vptr and !fixed_type_p
546 add ubsan instrumentation for virtual_access.
547 * call.c: Include internal-fn.h.
548 (set_flags_from_callee): Handle internal calls.
549
550 2015-01-15 Momchil Velikov <momchil.velikov@gmail.com>
551
552 PR c++/59366
553 * name-lookup.c (pushdecl_maybe_friend_1): Hide friend functions
554 and function templates, declared only in the class.
555 * decl.c (duplicate_decls): Reveal hidden friend functions or
556 function templates, if they are redeclared outside the class.
557
558 2015-01-15 Jason Merrill <jason@redhat.com>
559
560 PR c++/64356
561 * constexpr.c (cxx_eval_binary_expression): Fix pasto.
562
563 PR c++/63283
564 * constexpr.c (potential_constant_expression_1): Handle reference
565 args in templates.
566
567 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
568 James Norris <jnorris@codesourcery.com>
569 Cesar Philippidis <cesar@codesourcery.com>
570 Ilmir Usmanov <i.usmanov@samsung.com>
571 Jakub Jelinek <jakub@redhat.com>
572
573 * parser.c: Include "gomp-constants.h".
574 (cp_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
575 omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
576 Use OMP_CLAUSE_SET_MAP_KIND.
577 (cp_parser_omp_construct, cp_parser_pragma): Handle
578 PRAGMA_OACC_CACHE, PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA,
579 PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_PARALLEL,
580 PRAGMA_OACC_LOOP, PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
581 (cp_parser_omp_clause_name): Handle "async", "copy", "copyout",
582 "create", "delete", "deviceptr", "host", "num_gangs",
583 "num_workers", "present", "present_or_copy", "pcopy",
584 "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
585 "present_or_create", "pcreate", "vector_length", "wait".
586 (OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK)
587 (OACC_EXIT_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
588 (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
589 (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
590 (cp_parser_omp_var_list_no_open): Handle OMP_CLAUSE__CACHE_.
591 (cp_parser_oacc_data_clause, cp_parser_oacc_data_clause_deviceptr)
592 (cp_parser_oacc_clause_vector_length, cp_parser_oacc_wait_list)
593 (cp_parser_oacc_clause_wait, cp_parser_omp_clause_num_gangs)
594 (cp_parser_omp_clause_num_workers, cp_parser_oacc_clause_async)
595 (cp_parser_oacc_all_clauses, cp_parser_oacc_cache)
596 (cp_parser_oacc_data, cp_parser_oacc_enter_exit_data)
597 (cp_parser_oacc_kernels, cp_parser_oacc_loop)
598 (cp_parser_oacc_parallel, cp_parser_oacc_update)
599 (cp_parser_oacc_wait): New functions.
600 * cp-tree.h (finish_oacc_data, finish_oacc_kernels)
601 (finish_oacc_parallel): New prototypes.
602 * semantics.c: Include "gomp-constants.h".
603 (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
604 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
605 OMP_CLAUSE_SET_MAP_KIND.
606 (finish_omp_clauses): Handle OMP_CLAUSE_ASYNC,
607 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_WAIT, OMP_CLAUSE__CACHE_.
608 Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
609 (finish_oacc_data, finish_oacc_kernels, finish_oacc_parallel): New
610 functions.
611
612 2015-01-14 Paolo Carlini <paolo.carlini@oracle.com>
613
614 PR c++/58671
615 * decl2.c (var_defined_without_dynamic_init): Handle gracefully
616 self-initialization.
617
618 2015-01-13 Jason Merrill <jason@redhat.com>
619
620 PR c++/64356
621 PR libstdc++/58777
622 * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
623 pointer expressions.
624 (cxx_eval_increment_expression): Likewise.
625
626 PR c++/64514
627 * pt.c (coerce_template_parameter_pack): Return NULL for a
628 zero-length fixed parameter pack with a pack expansion arg.
629
630 PR c++/64520
631 * pt.c (unify): Don't try to deduce to std::initializer_list<T...>.
632
633 2015-01-12 Jason Merrill <jason@redhat.com>
634
635 PR c++/64547
636 * constexpr.c (cxx_eval_call_expression): A call to a void
637 function doesn't need to return a value.
638
639 2015-01-09 Michael Collison <michael.collison@linaro.org>
640
641 * call.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
642 input.h, alias.h, symtab.h, options.h, fold-const.h,
643 wide-int.h, and inchash.h due to flattening of tree.h.
644 * class.c: Ditto.
645 * constexpr.c: Ditto.
646 * cp-array-notation.c: Ditto.
647 * cp-gimplify.c: Ditto.
648 * cp-lang.c: Ditto.
649 * cp-objcp-common.c: Ditto.
650 * cvt.c: Ditto.
651 * decl2.c: Ditto.
652 * decl.c: Ditto.
653 * dump.c: Ditto.
654 * error.c: Ditto.
655 * except.c: Ditto.
656 * expr.c: Ditto.
657 * friend.c: Ditto.
658 * init.c: Ditto.
659 * lambda.c: Ditto.
660 * lex.c: Ditto.
661 * mangle.c: Ditto.
662 * name-lookup.c: Ditto.
663 * optimize.c: Ditto.
664 * parser.c: Ditto.
665 * pt.c: Ditto.
666 * ptree.c: Ditto.
667 * repo.c: Ditto.
668 * rtti.c: Ditto.
669 * search.c: Ditto.
670 * semantics.c: Ditto.
671 * tree.c: Ditto.
672 * typeck2.c: Ditto.
673 * typeck.c: Ditto.
674
675 2015-01-08 Jason Merrill <jason@redhat.com>
676
677 * cp-gimplify.c (cp_genericize): Use do_ubsan_in_current_function.
678 * decl.c (compute_array_index_type): Likewise.
679 * init.c (build_vec_init): Likewise.
680 * typeck.c (cp_build_binary_op): Likewise.
681
682 2015-01-08 Jason Merrill <jason@redhat.com>
683
684 * init.c (build_vec_init): Call ubsan_instrument_bounds to check
685 whether an initializer-list is too big for a VLA.
686 (throw_bad_array_length): Remove.
687 * cp-tree.h: Remove prototype.
688
689 2015-01-08 Paolo Carlini <paolo.carlini@oracle.com>
690
691 PR c++/60753
692 * decl.c (grokfndecl): Add bool parameter.
693 (grokdeclarator): Adjust calls.
694 (start_decl): Don't set DECL_DELETED_FN here.
695
696 2015-01-06 Jason Merrill <jason@redhat.com>
697
698 * parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid
699 template-ids.
700
701 PR c++/64455
702 * pt.c (type_dependent_expression_p): Handle variable templates.
703 * constexpr.c (potential_constant_expression_1): Use it.
704
705 PR c++/64487
706 * semantics.c (finish_offsetof): Handle templates here.
707 * parser.c (cp_parser_builtin_offsetof): Not here.
708
709 PR c++/64496
710 * semantics.c (process_outer_var_ref): Diagnose lambda in local
711 class NSDMI.
712
713 2015-01-06 Ville Voutilainen <ville.voutilainen@gmail.com>
714
715 PR c++/64489
716 * class.c (check_field_decls): Make copy assignment operators
717 complex only in c++98 mode.
718
719 2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
720
721 PR c++/31397
722 * class.c (check_for_override): Warn when a virtual function is an
723 override not marked override.
724
725 2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
726
727 * class.c (warn_hidden): Use auto_vec<tree> instead of tree_list to
728 hold base_fndecls.
729 (get_basefndecls): Adjust.
730
731 2015-01-05 Jakub Jelinek <jakub@redhat.com>
732
733 Update copyright years.
734
735 2015-01-05 Marek Polacek <polacek@redhat.com>
736
737 PR c/64423
738 * typeck.c (cp_build_array_ref): Pass loc down to
739 warn_array_subscript_with_type_char.
740
741 \f
742 Copyright (C) 2015 Free Software Foundation, Inc.
743
744 Copying and distribution of this file, with or without modification,
745 are permitted in any medium without royalty provided the copyright
746 notice and this notice are preserved.