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