]>
Commit | Line | Data |
---|---|---|
4d0cdd0c TP |
1 | 2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com> |
2 | ||
3 | * decl2.c: Include memmodel.h. | |
4 | * rtti.c: Likewise. | |
5 | ||
2ec69f56 JM |
6 | 2016-10-11 Jason Merrill <jason@redhat.com> |
7 | ||
8 | PR c++/77742 | |
9 | * init.c (build_new_1): Don't -Waligned-new about placement new. | |
10 | (malloc_alignment): New. Consider MALLOC_ABI_ALIGNMENT. | |
11 | * decl.c (cxx_init_decl_processing): New. | |
12 | ||
b7beb16a JM |
13 | 2016-10-10 Jason Merrill <jason@redhat.com> |
14 | ||
15 | PR c++/77890 | |
16 | PR c++/77912 | |
17 | * pt.c (do_class_deduction): Set cp_unevaluated_operand. | |
18 | (tsubst) [TEMPLATE_TYPE_PARM]: Copy CLASS_PLACEHOLDER_TEMPLATE. | |
19 | ||
627be19f JM |
20 | 2016-10-08 Jason Merrill <jason@redhat.com> |
21 | ||
e525cfa7 JM |
22 | * cp-gimplify.c (cp_fold): Add variable name. |
23 | ||
627be19f JM |
24 | * cp-gimplify.c (cp_fold): Distribute cp_truthvalue_conversion |
25 | into COND_EXPR. | |
26 | ||
36cbfdb0 JM |
27 | 2016-10-07 Jason Merrill <jason@redhat.com> |
28 | ||
29 | Further P0135 refinement. | |
30 | * call.c (build_user_type_conversion_1): Consider conversions from | |
31 | a single element in an initializer-list. | |
32 | (build_temp): Undo early_elide_copy change. | |
33 | (build_over_call): Check that we don't try to copy a TARGET_EXPR | |
34 | in C++17 mode. Set user_conv_p here. | |
35 | (convert_like_real): Not here. | |
36 | (check_self_delegation): Split out from... | |
37 | (build_special_member_call): ...here. Handle C++17 copy elision. | |
38 | * cvt.c (early_elide_copy): Remove. | |
39 | (ocp_convert): Undo early_elide_copy change. | |
40 | * except.c (build_throw): Likewise. | |
41 | * init.c (expand_default_init): Likewise. | |
42 | * typeck.c (cp_build_modify_expr): Likewise. | |
43 | ||
45e2bf2e NS |
44 | 2016-10-07 Nathan Sidwell <nathan@acm.org> |
45 | ||
46 | PR c++/64433 | |
47 | DR1658, DR1611 | |
48 | * init.c (emit_mem_initializers): Don't construct vbases of | |
49 | abstract classes. | |
50 | (push_base_cleanups): Don't push vbase cleanups for abstract class | |
51 | when in C++14 mode. | |
52 | * method.c (synthethesized_method_walk): Don't walk vbases of | |
53 | abstract classes when in C++14 mode. | |
54 | ||
be845b04 JJ |
55 | 2016-10-07 Jakub Jelinek <jakub@redhat.com> |
56 | ||
57 | Implement LWG2296 helper intrinsic | |
58 | * parser.c (cp_parser_postfix_expression): Handle RID_ADDRESSOF. | |
59 | * cp-objcp-common.c (cp_common_init_ts): Handle ADDRESSOF_EXPR. | |
60 | * constexpr.c (potential_constant_expression_1): Likewise. | |
61 | * error.c (dump_expr): Likewise. | |
62 | * typeck.c (cp_build_addressof): New function. | |
63 | * cp-tree.h (cp_build_addressof): Declare. | |
64 | * cxx-pretty-print.h (pp_cxx_addressof_expression): Declare. | |
65 | * cp-tree.def (ADDRESSOF_EXPR): New tree code. | |
66 | * cxx-pretty-print.c (cxx_pretty_printer::primary_expression): Handle | |
67 | ADDRESSOF_EXPR. Add __builtin_addressof and | |
68 | __has_unique_object_representations into syntax in function comment. | |
69 | (pp_cxx_addressof_expression): New function. | |
70 | * pt.c (tsubst_copy_and_build): Handle ADDRESSOF_EXPR. | |
71 | ||
c09c4992 BE |
72 | 2016-10-07 Bernd Edlinger <bernd.edlinger@hotmail.de> |
73 | ||
74 | PR c++/77700 | |
75 | * parser.c (cp_parser_base_specifier): Fix a warning. | |
76 | ||
8a14afd0 BS |
77 | 2016-10-07 Bernd Schmidt <bschmidt@redhat.com> |
78 | ||
79 | PR c++/69733 | |
80 | * decl.c (grokdeclarator): Try to find the correct location for an | |
81 | ignored qualifier. | |
82 | ||
5d341f08 ML |
83 | 2016-10-07 Martin Liska <mliska@suse.cz> |
84 | ||
85 | * lambda.c (maybe_add_lambda_conv_op): Set default value. | |
86 | ||
b7558a2c JM |
87 | 2016-10-06 Jason Merrill <jason@redhat.com> |
88 | ||
89 | * call.c (build_temp, convert_like_real): Don't re-copy | |
90 | TARGET_EXPR. Handle packed fields. | |
91 | (build_x_va_arg): Wrap it in a TARGET_EXPR. | |
92 | (build_over_call): Add sanity check. | |
93 | * cvt.c (early_elide_copy): New. | |
94 | (ocp_convert): Use it. | |
95 | * except.c (build_throw): Use it. | |
96 | * init.c (get_nsdmi): Put back the TARGET_EXPR. | |
97 | (expand_default_init): Call early_elide_copy. | |
98 | * typeck.c (cp_build_modify_expr): Call early_elide_copy. | |
99 | ||
342cfb3e JJ |
100 | 2016-10-06 Jakub Jelinek <jakub@redhat.com> |
101 | ||
102 | Implement P0258R2 - helper for C++17 | |
103 | std::has_unique_object_representations trait | |
104 | * cp-tree.h (enum cp_trait_kind): Add | |
105 | CPTK_HAS_UNIQUE_OBJ_REPRESENTATIONS. | |
106 | (struct lang_type_class): Add unique_obj_representations | |
107 | and unique_obj_representations_set bitfields. | |
108 | (CLASSTYPE_UNIQUE_OBJ_REPRESENTATIONS, | |
109 | CLASSTYPE_UNIQUE_OBJ_REPRESENTATIONS_SET): Define. | |
110 | (type_has_unique_obj_representations): Declare. | |
111 | * parser.c (cp_parser_primary_expression): Handle | |
112 | RID_HAS_UNIQUE_OBJ_REPRESENTATIONS. | |
113 | (cp_parser_trait_expr): Likewise. Formatting fix. | |
114 | * semantics.c (trait_expr_value, finish_trait_expr): Handle | |
115 | CPTK_HAS_UNIQUE_OBJ_REPRESENTATIONS. | |
116 | * tree.c (type_has_unique_obj_representations): New function. | |
117 | (record_has_unique_obj_representations): New function. | |
118 | * cxx-pretty-print.c (pp_cxx_trait_expression): Handle | |
119 | CPTK_HAS_UNIQUE_OBJ_REPRESENTATIONS. | |
120 | ||
8b7033e0 JM |
121 | 2016-10-05 Jason Merrill <jason@redhat.com> |
122 | ||
bf9b09fb JM |
123 | Implement P0135R1, Guaranteed copy elision. |
124 | * cvt.c (ocp_convert): Don't re-copy a TARGET_EXPR in C++17. | |
125 | ||
5794b9f6 JM |
126 | PR c++/54293 |
127 | * call.c (reference_binding): Fix binding to member of temporary. | |
128 | ||
27afd940 JM |
129 | * call.c (extend_ref_init_temps): Fix TARGET_EXPR handling. |
130 | ||
3bd034d0 JM |
131 | * parser.c (cp_parser_skip_to_end_of_statement): Add missing break. |
132 | ||
8b7033e0 JM |
133 | * semantics.c (finish_compound_literal): Handle class placeholder. |
134 | ||
17a9e380 MP |
135 | 2016-10-05 Marek Polacek <polacek@redhat.com> |
136 | ||
137 | Implement P0305R1, Selection statements with initializer. | |
138 | * cp-array-notation.c (create_an_loop): Call finish_init_stmt | |
139 | instead of finish_for_init_stmt. | |
140 | * cp-tree.h (finish_for_init_stmt): Rename to finish_init_stmt. | |
141 | * decl.c (poplevel): Adjust a comment. | |
142 | * init.c (build_vec_init): Call finish_init_stmt instead of | |
143 | finish_for_init_stmt. | |
144 | * name-lookup.c (pushdecl_maybe_friend_1): Adjust a comment. | |
145 | * name-lookup.h (enum scope_kind): Likewise. | |
146 | * parser.c (cp_parser_statement): Update commentary. | |
147 | (cp_parser_init_statement_p): New function. | |
148 | (cp_parser_selection_statement): Parse the optional init-statement. | |
149 | (cp_parser_for): Call finish_init_stmt instead of finish_for_init_stmt. | |
150 | (cp_parser_c_for): Likewise. | |
151 | (cp_convert_range_for): Call finish_init_stmt instead of finish_for_init_stmt. | |
152 | (cp_parser_range_for_member_function): Update commentary. | |
153 | (cp_parser_iteration_statement): | |
154 | (cp_parser_for_init_statement): Rename to cp_parser_init_statement. | |
155 | * pt.c (tsubst_omp_for_iterator): Update commentary. | |
156 | (tsubst_expr): Call finish_init_stmt instead of finish_for_init_stmt. | |
157 | * semantics.c (finish_for_init_stmt): Rename to finish_init_stmt. | |
158 | Update commentary. | |
159 | ||
f1644724 JM |
160 | 2016-10-04 Jason Merrill <jason@redhat.com> |
161 | ||
162 | PR c++/77852 | |
163 | * pt.c (do_class_deduction): Handle list-initialization. | |
164 | (do_auto_deduction): Call it sooner. | |
165 | (build_deduction_guide): Use tsubst_arg_types. | |
166 | (rewrite_template_parm): Don't copy_type. | |
2db613e5 JM |
167 | |
168 | PR c++/77775 | |
169 | * constexpr.c (cxx_eval_component_reference): Use name matching | |
170 | for PMFs. | |
171 | ||
76b294d4 JM |
172 | Implement P0091R2, Template argument deduction for class templates. |
173 | * parser.c (cp_parser_simple_type_specifier): Parse class placeholder. | |
174 | Use the location of the beginning of the type-specifier. | |
175 | (cp_parser_init_declarator): Parse deduction guide. | |
176 | (cp_parser_diagnose_invalid_type_name): Mention class deduction. | |
177 | (cp_parser_type_id_1): Don't accept class placeholder as template arg. | |
178 | * cp-tree.h (CLASS_PLACEHOLDER_TEMPLATE): New. | |
179 | * decl.c (grokdeclarator): Check for uninitialized auto here. | |
180 | (start_decl_1): Not here. | |
181 | (cp_finish_decl): Or here. Don't collapse a list when doing | |
182 | class deduction. | |
183 | (grokfndecl): Check deduction guide scope and body. | |
184 | * error.c (dump_decl, dump_function_decl, dump_function_name): | |
185 | Handle deduction guides. | |
186 | * pt.c (make_template_placeholder, do_class_deduction): New. | |
187 | (build_deduction_guide, rewrite_template_parm): New. | |
188 | (dguide_name, dguide_name_p, deduction_guide_p): New. | |
189 | (do_auto_deduction): Call do_class_deduction. | |
190 | (splice_late_return_type, is_auto): Handle class placeholders. | |
191 | (template_parms_level_to_args): Split from template_parms_to_args. | |
192 | (tsubst_template_parms_level): Split from tsubst_template_parms. | |
193 | * typeck2.c (build_functional_cast): Handle class placeholder. | |
194 | ||
8ff04ff9 MS |
195 | 2016-10-04 Martin Sebor <msebor@redhat.com> |
196 | ||
197 | PR c++/77804 | |
198 | * init.c (warn_placement_new_too_small): Avoid assuming an array type | |
199 | has a constant size. | |
200 | ||
bfecd57c JJ |
201 | 2016-10-04 Jakub Jelinek <jakub@redhat.com> |
202 | ||
f72da967 JJ |
203 | PR c++/77791 |
204 | * parser.c (cp_parser_lambda_declarator_opt): Only pedwarn | |
205 | for C++11 on decls in the param_list. Test cxx_dialect < cxx14 before | |
206 | the loop just once. | |
207 | ||
bfecd57c JJ |
208 | * cp-tree.h (enum cp_tree_index): Remove CPTI_JAVA_*, |
209 | CPTI_LANG_NAME_JAVA and CPTI_JCLASS. | |
210 | (java_byte_type_node, java_short_type_node, java_int_type_node, | |
211 | java_long_type_node, java_float_type_node, java_double_type_node, | |
212 | java_char_type_node, java_boolean_type_node, lang_name_java, | |
213 | jclass_node): Remove. | |
214 | (enum languages): Remove lang_java. | |
215 | (TYPE_FOR_JAVA): Remove. | |
216 | (struct lang_type_class): Remove java_interface bit-field. | |
217 | (TYPE_JAVA_INTERFACE): Remove. | |
218 | (pragma_java_exceptions): Remove. | |
219 | (check_java_method, build_java_class_ref): Remove prototypes. | |
220 | * name-lookup.c (pushtag_1): Don't set TYPE_FOR_JAVA. | |
221 | * decl2.c (acceptable_java_type, check_java_method): Remove. | |
222 | (import_export_decl): Remove TYPE_FOR_JAVA handling. | |
223 | (build_java_method_aliases): Remove. | |
224 | (c_parse_final_cleanups): Don't call build_java_method_aliases. | |
225 | (possibly_inlined_p): Don't test pragma_java_exceptions. | |
226 | * init.c (build_new_1): Remove TYPE_FOR_JAVA handling. | |
227 | (build_java_class_ref): Remove. | |
228 | * pt.c (maybe_new_partial_specialization, lookup_template_class_1, | |
229 | instantiate_class_template_1): Don't copy TYPE_FOR_JAVA. | |
230 | * except.c (eh_type_info): Remove java type handling. | |
231 | (decl_is_java_type, choose_personality_routine): Remove. | |
232 | (initialize_handler_parm): Don't call choose_personality_routine. | |
233 | (expand_start_catch_block): Don't handle java types. | |
234 | (build_throw): Likewise. | |
235 | * cp-lang.c (cp_eh_personality): Don't handle pragma_java_exceptions. | |
236 | * typeck.c (structural_comptypes): Don't compare TYPE_FOR_JAVA. | |
237 | * call.c (build_over_call): Don't handle TYPE_JAVA_INTERFACE. | |
238 | (java_iface_lookup_fn): Remove. | |
239 | (build_java_interface_fn_ref): Remove. | |
240 | * tree.c (cxx_attribute_table): Remove java_interface. | |
241 | (handle_java_interface_attribute): Remove. | |
242 | * lex.c (pragma_java_exceptions): Remove. | |
243 | (init_cp_pragma): Don't register GCC java_exceptions pragma. | |
244 | (handle_pragma_java_exceptions): Remove. | |
245 | (retrofit_lang_decl): Don't handle lang_name_java. | |
246 | * method.c (implicitly_declare_fn): Don't handle TYPE_FOR_JAVA. | |
247 | * error.c (language_to_string): Don't handle lang_java. | |
248 | * decl.c (record_builtin_java_type): Remove. | |
249 | (initialize_predefined_identifiers): Remove Java. | |
250 | (cxx_init_decl_processing): Remove java_*_type_node. | |
251 | (cp_finish_decl): Don't handle TYPE_FOR_JAVA. | |
252 | (grokfndecl): Likewise. | |
253 | (check_special_function_return_type): Likewise. | |
254 | (grokdeclarator): Don't set TYPE_FOR_JAVA. | |
255 | (grokparms): Don't handle TYPE_FOR_JAVA. | |
256 | (xref_basetypes): Likewise. | |
257 | (check_function_type): Likewise. | |
258 | (finish_constructor_body): Likewise. | |
259 | * mangle.c (write_builtin_type): Don't handle TYPE_FOR_JAVA | |
260 | and java_*_type_node. | |
261 | (write_bare_function_type): Don't handle TYPE_FOR_JAVA. | |
262 | (write_java_integer_type_codes): Remove. | |
263 | * class.c (add_method): Don't handle TYPE_FOR_JAVA. | |
264 | (add_implicitly_declared_members, determine_key_method, | |
265 | finish_struct_1): Likewise. | |
266 | (push_lang_context): Don't handle lang_name_java. | |
267 | ||
f41f1ceb MP |
268 | 2016-10-03 Marek Polacek <polacek@redhat.com> |
269 | ||
270 | Core 903 | |
271 | * typeck.c (cp_build_binary_op): Pass original operands to | |
272 | null_ptr_cst_p, not those after the default conversions. | |
273 | ||
1633d3b9 BE |
274 | 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de> |
275 | ||
276 | * parser.c (cp_parser_condition): Fix a warning. | |
277 | ||
a2c6e7f2 JJ |
278 | 2016-09-29 Jakub Jelinek <jakub@redhat.com> |
279 | ||
280 | Implement P0001R1 - C++17 removal of register storage class specifier | |
281 | * decl.c (cp_finish_decl): Diagnose register storage class | |
282 | on vars except when used in GNU global or local register variable | |
283 | extension. | |
284 | (grokdeclarator): Diagnose register storage class on parameters. | |
285 | * except.c (expand_start_catch_block): Set DECL_REGISTER only | |
286 | after cp_finish_decl call. | |
287 | ||
0b4b9552 MP |
288 | 2016-09-29 Marek Polacek <polacek@redhat.com> |
289 | ||
290 | * rtti.c (involves_incomplete_p): Add fall through comment. | |
291 | ||
4b390698 JJ |
292 | 2016-09-28 Jakub Jelinek <jakub@redhat.com> |
293 | ||
294 | PR c++/77467 | |
295 | * constexpr.c (enum constexpr_switch_state): New. | |
296 | (struct constexpr_ctx): Add css_state field. | |
297 | (label_matches): Add CTX and STMT arguments, remove I and | |
298 | DEFAULT_LABEL. For CASE_LABEL_EXPR assert ctx->css_state != NULL, | |
299 | handle default labels according to css_state. | |
300 | (cxx_eval_statement_list): Remove statement skipping, label_matches | |
301 | and default_label handling code. | |
302 | (cxx_eval_loop_expr): Exit after first iteration even if | |
303 | switches (jump_target). | |
304 | (cxx_eval_switch_expr): Set up css_state field in ctx, if default | |
305 | label has been seen in the body, but no cases matched, evaluate | |
306 | the body second time. | |
307 | (cxx_eval_constant_expression): Handle stmt skipping and label_matches | |
308 | here. Handle PREDICT_EXPR. For MODIFY_EXPR or INIT_EXPR, assert | |
309 | statement is not skipped. For COND_EXPR during skipping, don't | |
310 | evaluate condition, just the then block and if still skipping at the | |
311 | end also the else block. | |
312 | (cxx_eval_outermost_constant_expr): Adjust constexpr_ctx initializer. | |
313 | (is_sub_constant_expr): Likewise. | |
314 | ||
459bcfb0 JJ |
315 | 2016-09-27 Jakub Jelinek <jakub@redhat.com> |
316 | ||
8ca33347 JJ |
317 | Implement P0018R3, C++17 lambda capture of *this by value as [=,*this] |
318 | * parser.c (cp_parser_lambda_introducer): Formatting fix. Pass | |
319 | true instead of false as by_reference_p to add_capture for 'this'. | |
320 | Parse '*this' simple-capture. | |
321 | * lambda.c (build_capture_proxy): Handle '*this' capture by value. | |
322 | (add_capture): Adjust function comment. For id == this_identifier, | |
323 | treat by_reference_p as capturing '*this' by reference, i.e. 'this' | |
324 | by value, and !by_reference_p as capturing '*this' by value. | |
325 | (add_default_capture): For implicit 'this' capture, always pass | |
326 | by_reference_p true rather than false. | |
327 | ||
459bcfb0 JJ |
328 | PR c++/77722 |
329 | * cp-gimplify.c (cp_ubsan_maybe_instrument_return): Instrument also | |
330 | functions that have just a STATEMENT_LIST instead of BIND_EXPR, or | |
331 | BIND_EXPR with some statement rather than STATEMENT_LIST as body. | |
332 | ||
c0cdf62c NS |
333 | 2016-09-26 Nathan Sidwell <nathan@acm.org> |
334 | ||
335 | * init.c (expand_default_init): Fix } indentation. | |
336 | * method.c (process_subob_fn): Simplify control structure to | |
337 | remove gotos. | |
338 | (implicitly_declare_fn): Remove duplicated lambda ctor check. | |
339 | ||
81fea426 MP |
340 | 2016-09-26 Marek Polacek <polacek@redhat.com> |
341 | ||
342 | PR c/7652 | |
343 | * parser.c (cp_parser_storage_class_specifier_opt): Add | |
344 | gcc_fallthrough. | |
345 | (cp_parser_skip_to_end_of_template_parameter_list): Likewise. | |
346 | (cp_parser_cache_defarg): Likewise. | |
347 | (cp_parser_omp_for_cond): Likewise. | |
348 | * semantics.c (finish_decltype_type): Likewise. | |
349 | * typeck.c (structural_comptypes): Likewise. | |
350 | (cp_build_binary_op): Likewise. | |
351 | (cp_build_modify_expr): Likewise. | |
352 | ||
353 | 2016-09-26 Marek Polacek <polacek@redhat.com> | |
354 | ||
355 | PR c/7652 | |
356 | * constexpr.c (cxx_eval_internal_function): Handle IFN_FALLTHROUGH. | |
357 | (potential_constant_expression_1): Likewise. | |
358 | * constraint.cc (function_concept_check_p): Check fn for null. | |
359 | * parser.c (cp_parser_expression_statement): Handle attribute | |
360 | fallthrough. | |
361 | (cp_parser_statement): Likewise. | |
362 | (cp_parser_label_for_labeled_statement): Set FALLTHROUGH_LABEL_P on | |
363 | labels. | |
364 | (cp_parser_std_attribute): Handle fallthrough attribute. | |
365 | (cp_parser_check_std_attribute): Add %< %> quotes. | |
366 | * pt.c (tsubst_copy_and_build): Handle internal functions. | |
367 | (instantiation_dependent_scope_ref_p): Return if the expression is | |
368 | null. | |
369 | ||
9a2300e9 MP |
370 | 2016-09-24 Marek Polacek <polacek@redhat.com> |
371 | ||
372 | PR c/77490 | |
373 | * typeck.c (cp_build_unary_op): Warn about bit not on expressions that | |
374 | have boolean value. | |
375 | ||
aaa1b10f JJ |
376 | 2016-09-23 Jakub Jelinek <jakub@redhat.com> |
377 | ||
d664d76d JJ |
378 | Implement P0138R2, C++17 construction rules for enum class values |
379 | * cp-tree.h (is_direct_enum_init): Declare. | |
380 | * decl.c (is_direct_enum_init): New function. | |
381 | (reshape_init): Use it. | |
382 | * typeck.c (convert_for_assignment): Likewise. | |
383 | ||
24cae8cb JJ |
384 | * Make-lang.in (check-c++1z): Pass RUNTESTFLAGS down to |
385 | make check-g++. | |
386 | ||
7de76362 JJ |
387 | * constexpr.c (call_stack): Remove unnecessary |
388 | = vNULL initialization of file scope vec. | |
389 | ||
199d1d48 JJ |
390 | * name-lookup.c (store_bindings, store_class_bindings): Don't |
391 | initialize static local bindings_need_stored to vNULL. | |
392 | ||
aaa1b10f JJ |
393 | * typeck2.c (process_init_constructor_record): Use |
394 | CONSTRUCTOR_NELTS (...) instead of | |
395 | vec_safe_length (CONSTRUCTOR_ELTS (...)). | |
396 | * decl.c (reshape_init_r): Likewise. | |
397 | (check_initializer): Likewise. | |
398 | ||
a608d15b PC |
399 | 2016-09-22 Paolo Carlini <paolo.carlini@oracle.com> |
400 | ||
401 | PR c++/71979 | |
402 | * class.c (build_base_path): Allow for lookup_base returning | |
403 | NULL_TREE. | |
404 | ||
c67c64ef JM |
405 | 2016-09-21 Jason Merrill <jason@redhat.com> |
406 | ||
407 | Core 903 | |
408 | * call.c (null_ptr_cst_p): Check char_type_p. | |
409 | ||
2e1c20b1 JJ |
410 | 2016-09-21 Jakub Jelinek <jakub@redhat.com> |
411 | ||
412 | PR c++/77651 | |
413 | * init.c (build_new_1): Don't suggest to use -faligned-new if | |
414 | aligned_new_threshold is non-zero. | |
415 | (type_has_new_extended_alignment): Change aligned_new_threshhold | |
416 | to aligned_new_threshold. | |
417 | * call.c (second_parm_is_size_t, aligned_allocation_fn_p, | |
418 | aligned_deallocation_fn_p, build_op_delete_call): Likewise. | |
419 | * decl.c (cxx_init_decl_processing): Likewise. | |
420 | ||
590b62e9 JJ |
421 | 2016-09-20 Jakub Jelinek <jakub@redhat.com> |
422 | ||
b912f962 JJ |
423 | PR c++/77626 |
424 | * constexpr.c (cxx_fold_indirect_ref): Don't call byte_position on | |
425 | FIELD_DECLs with error_mark_node type. Remove useless break; after | |
426 | return. | |
427 | ||
eaf1ece1 JJ |
428 | PR c++/77638 |
429 | * parser.c (cp_parser_template_declaration_after_parameter): For 2 | |
430 | argument operator"" template set ok to false for | |
431 | parm == error_mark_node. | |
432 | ||
590b62e9 JJ |
433 | PR c++/77637 |
434 | * parser.c (cp_parser_std_attribute_list): Reject ... without | |
435 | preceding attribute. | |
436 | ||
144a96e4 BE |
437 | 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de> |
438 | ||
439 | PR c++/77434 | |
440 | * cvt.c (cp_convert_and_check): Suppress Wint-in-bool-context here. | |
441 | ||
6101a7ab PP |
442 | 2016-09-16 Patrick Palka <ppalka@gcc.gnu.org> |
443 | ||
444 | PR c++/77639 | |
445 | * parser.c (cp_parser_class_head): When | |
446 | processing_template_parmlist, don't assume that the | |
447 | class-head may start an explicit specialization. | |
448 | ||
e7d61178 JJ |
449 | 2016-09-16 Jakub Jelinek <jakub@redhat.com> |
450 | ||
8f03e02f JJ |
451 | PR c++/77482 |
452 | * error.c (dump_simple_decl): Only check DECL_DECLARED_CONCEPT_P | |
453 | if DECL_LANG_SPECIFIC is non-NULL. Fix up formatting. | |
454 | ||
1c2f613f JJ |
455 | PR c++/77338 |
456 | * constexpr.c (cxx_eval_constant_expression) <case PARM_DECL>: Only | |
457 | call is_really_empty_class on complete types. | |
458 | ||
e7d61178 JJ |
459 | PR c++/77375 |
460 | * class.c (check_bases): Set CLASSTYPE_HAS_MUTABLE if any | |
461 | TYPE_HAS_MUTABLE_P for any bases. | |
462 | ||
146ec50f JM |
463 | 2016-09-16 Jason Merrill <jason@redhat.com> |
464 | ||
465 | * class.c (check_bases, set_one_vmethod_tm_attributes): Use | |
466 | least_bit_hwi. | |
467 | * decl.c (cxx_init_decl_processing): Use pow2p_hwi. | |
468 | * parser.c (cp_parser_cilk_simd_vectorlength): Use pow2p_hwi. | |
469 | ||
28ca05f0 JJ |
470 | 2016-09-14 Jakub Jelinek <jakub@redhat.com> |
471 | ||
472 | PR c++/77549 | |
473 | * name-lookup.c (consider_binding_level): Look through TREE_LIST | |
474 | and OVERLOAD. | |
475 | ||
20a1e5b8 MP |
476 | 2016-09-14 Marek Polacek <polacek@redhat.com> |
477 | ||
478 | * typeck.c (cp_build_unary_op): Diagnose incrementing boolean | |
479 | expressions. Tweak an error message. | |
480 | ||
e51fbec3 MP |
481 | 2016-09-14 Marek Polacek <polacek@redhat.com> |
482 | ||
483 | * cp-tree.h (cp_build_unary_op): Change nonconvert parameter type to | |
484 | bool. | |
485 | * decl2.c (one_static_initialization_or_destruction): Use true instead | |
486 | of 1. | |
487 | * init.c (build_vec_init): Use false instead of 0. | |
488 | * pt.c (tsubst_copy_and_build): Likewise. | |
489 | * semantics.c (simplify_loop_decl_cond): Likewise. | |
490 | * typeck.c (rationalize_conditional_expr): Likewise. | |
491 | (cp_build_binary_op): Use true instead of 1. | |
492 | (cp_build_unary_op): Change nonconvert parameter type to bool. Use true | |
493 | instead of 1. | |
494 | (build_unary_op): Change nonconvert parameter type to bool. | |
495 | (unary_complex_lvalue): Use false instead of 0. | |
496 | ||
ea8661cd JJ |
497 | 2016-09-13 Jakub Jelinek <jakub@redhat.com> |
498 | ||
9952908a JJ |
499 | Implement P0028R4, C++17 using attribute namespaces without repetition |
500 | * parser.c (cp_parser_std_attribute): Add ATTR_NS argument. Diagnose | |
501 | non-NULL ATTR_NS with scoped attribute token. Handle non-NULL | |
502 | ATTR_NS with non-scoped attribute tokens. Allow named ops in | |
503 | identifier after ::. | |
504 | (cp_parser_std_attribute_list): Add ATTR_NS argument, pass it down | |
505 | to cp_parser_std_attribute calls. | |
506 | (cp_parser_std_attribute_spec): Parse optional C++17 | |
507 | attribute-using-prefix, adjust grammar in function comment. | |
508 | ||
ea8661cd JJ |
509 | PR c++/77553 |
510 | * constexpr.c (cxx_fold_pointer_plus_expression): New function. | |
511 | (cxx_eval_binary_expression): Use it for POINTER_PLUS_EXPR. | |
512 | (cxx_eval_pointer_plus_expression): Remove. | |
513 | (cxx_eval_constant_expression) <case POINTER_PLUS_EXPR>: Don't | |
514 | call cxx_eval_pointer_plus_expression. | |
515 | ||
254830ba DM |
516 | 2016-09-13 David Malcolm <dmalcolm@redhat.com> |
517 | ||
518 | * parser.c (cp_parser_class_specifier_1): Update for renaming of | |
519 | add_fixit_insert to add_fixit_insert_before. | |
520 | (cp_parser_class_head): Likewise. | |
521 | ||
54dcdb88 BE |
522 | 2016-09-12 Bernd Edlinger <bernd.edlinger@hotmail.de> |
523 | ||
524 | PR c++/77496 | |
525 | * call.c (build_conditional_expr_1): Call warn_for_omitted_condop. | |
526 | * class.c (instantiate_type): Look through the SAVE_EXPR. | |
527 | ||
af63ba4b JM |
528 | 2016-09-09 Jason Merrill <jason@redhat.com> |
529 | ||
530 | Implement P0035R4, C++17 new of over-aligned types. | |
531 | * cp-tree.h (enum cp_tree_index): Add CPTI_ALIGN_TYPE. | |
532 | (align_type_node): New macro. | |
533 | * call.c (build_operator_new_call): Handle C++17 aligned new. | |
534 | (second_parm_is_size_t, build_op_delete_call): Likewise. | |
535 | (non_placement_deallocation_fn_p): Likewise. Rename to | |
536 | usual_deallocation_fn_p. | |
537 | (aligned_allocation_fn_p, aligned_deallocation_fn_p): New. | |
538 | * decl.c (cxx_init_decl_processing): Add aligned new support. | |
539 | * init.c (type_has_new_extended_alignment): New. | |
540 | (build_new_1): Handle aligned new. | |
541 | * tree.c (vec_copy_and_insert): New. | |
542 | ||
94087e88 JJ |
543 | 2016-09-02 Jakub Jelinek <jakub@redhat.com> |
544 | ||
545 | PR sanitizer/77396 | |
546 | * decl2.c (do_static_initialization_or_destruction): Only | |
547 | call asan_dynamic_init_call if INITP is true. | |
548 | ||
549 | 2016-09-01 Martin Sebor <msebor@redhat.com> | |
3d7b83b6 MS |
550 | |
551 | * mangle.c: Increase buffer size to guarantee it fits the output | |
552 | of the formatted function regardless of its arguments. | |
553 | ||
295844f6 MP |
554 | 2016-09-01 Marek Polacek <polacek@redhat.com> |
555 | ||
556 | PR c/7652 | |
557 | * error.c (dump_type): Fix falls through comment. | |
558 | (dump_decl): Likewise. | |
559 | (dump_expr): Likewise. | |
560 | ||
71b30891 DM |
561 | 2016-08-30 David Malcolm <dmalcolm@redhat.com> |
562 | ||
563 | * parser.c (cp_parser_enclosed_template_argument_list): Add fix-it | |
564 | hint to ">>" within nested template argument list error. | |
565 | ||
f9087798 DM |
566 | 2016-08-30 David Malcolm <dmalcolm@redhat.com> |
567 | ||
568 | * name-lookup.c (suggest_alternatives_for): Use add_fixit_replace | |
569 | rather than add_fixit_misspelled_id. | |
570 | * parser.c (cp_parser_diagnose_invalid_type_name): Likewise. | |
571 | ||
328eae1c JM |
572 | 2016-08-29 Jason Merrill <jason@redhat.com> |
573 | ||
574 | PR c++/77379 | |
575 | * mangle.c (maybe_check_abi_tags): Add version parm, handle thunks. | |
576 | (mangle_thunk): Add thunk parameter. | |
577 | * method.c (finish_thunk): Pass it. | |
578 | * cp-tree.h: Declare it. | |
579 | ||
9729a5d5 JM |
580 | 2016-08-15 Jason Merrill <jason@redhat.com> |
581 | ||
d0b0fbd9 JM |
582 | Avoid calling a trivial default constructor. |
583 | * class.c (default_ctor_p): New. | |
584 | (in_class_defaulted_default_constructor): Use it. | |
585 | (type_has_non_user_provided_default_constructor): Use it. | |
586 | * call.c (build_over_call): Handle trivial default constructor. | |
587 | * cp-tree.h: Declare default_ctor_p. | |
588 | ||
9729a5d5 JM |
589 | PR c++/57728 |
590 | * pt.c (do_type_instantiation): Don't mess with non-user-provided | |
591 | member functions. | |
592 | ||
ebef225f MP |
593 | 2016-08-25 Marek Polacek <polacek@redhat.com> |
594 | ||
595 | * parser.c (cp_parser_binary_expression): Pass LHS to | |
596 | warn_logical_not_parentheses. | |
597 | ||
9c62c873 MP |
598 | 2016-08-18 Marek Polacek <polacek@redhat.com> |
599 | ||
600 | PR c/7652 | |
601 | * call.c (add_builtin_candidate): Add gcc_fallthrough. | |
602 | * cxx-pretty-print.c (pp_cxx_unqualified_id): Likewise. | |
603 | * parser.c (cp_parser_skip_to_end_of_statement): Likewise. | |
604 | (cp_parser_cache_defarg): Likewise. | |
605 | ||
191816a3 MP |
606 | 2016-08-12 Marek Polacek <polacek@redhat.com> |
607 | ||
608 | PR c/7652 | |
609 | * call.c (add_builtin_candidate): Add FALLTHRU. | |
610 | (build_integral_nontype_arg_conv): Adjust fall through comment. | |
611 | (build_new_op_1): Add FALLTHRU. | |
612 | (convert_like_real): Adjust fall through comment. | |
613 | * class.c (fixed_type_or_null): Likewise. | |
614 | * constexpr.c (cxx_eval_constant_expression): Likewise. | |
615 | (potential_constant_expression_1): Likewise. Add FALLTHRU. | |
616 | * cp-gimplify.c (cp_gimplify_expr): Adjust fall through comment. | |
617 | (cp_fold): Add FALLTHRU. | |
618 | * cvt.c (build_expr_type_conversion): Adjust fall through comment. | |
619 | * cxx-pretty-print.c (pp_cxx_unqualified_id): Add FALLTHRU. | |
620 | (pp_cxx_qualified_id): Likewise. | |
621 | (cxx_pretty_printer::constant): Adjust fall through comment. | |
622 | (cxx_pretty_printer::primary_expression): Add FALLTHRU. | |
623 | (pp_cxx_pm_expression): Adjust fall through comment. | |
624 | (cxx_pretty_printer::expression): Add FALLTHRU. | |
625 | (cxx_pretty_printer::declaration_specifiers): Reformat code. | |
626 | (pp_cxx_type_specifier_seq): Adjust fall through comment. | |
627 | (pp_cxx_ptr_operator): Likewise. Add FALLTHRU. | |
628 | * error.c (dump_type): Adjust fall through comment. | |
629 | (dump_decl): Likewise. | |
630 | * mangle.c (write_type): Likewise. | |
631 | * method.c (synthesized_method_walk): Add FALLTHRU. | |
632 | * name-lookup.c (arg_assoc_type): Likewise. | |
633 | * parser.c (cp_lexer_print_token): Adjust fall through comment. | |
634 | (cp_parser_primary_expression): Add FALLTHRU. | |
635 | (cp_parser_operator): Likewise. | |
636 | * pt.c (find_parameter_packs_r): Likewise. | |
637 | (tsubst_aggr_type): Adjust fall through comment. | |
638 | * semantics.c (finish_omp_clauses): Add FALLTHRU. | |
639 | * tree.c (lvalue_kind): Likewise. | |
640 | ||
3f8257db | 641 | 2016-08-12 Alexandre Oliva <aoliva@redhat.com> |
e366d7d8 AO |
642 | |
643 | PR debug/63240 | |
644 | * cp-objcp-common.c (cp_function_decl_defaulted): New. | |
645 | (cp_function_decl_explicit_p): Const_tree-ify. | |
646 | (cp_function_decl_deleted_p): Likewise. | |
647 | * cp-objcp-common.h (cp_function_decl_defaulted): Declare. | |
648 | (cp_function_decl_explicit_p): Const_tree-ify. | |
649 | (cp_function_decl_deleted_p): Likewise. | |
650 | (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Redefine. | |
651 | ||
385ed708 JJ |
652 | 2016-08-11 Jakub Jelinek <jakub@redhat.com> |
653 | ||
654 | PR c++/72868 | |
655 | * constexpr.c (label_matches): Handle case range expressions. | |
656 | ||
4200a723 JM |
657 | 2016-08-11 Jason Merrill <jason@redhat.com> |
658 | ||
659 | PR c++/73456 | |
660 | * logic.cc (non_atomic_constraint_p): Handle EXPR_PACK_EXPANSION. | |
661 | ||
99f9d4b1 JM |
662 | 2016-08-10 Jason Merrill <jason@redhat.com> |
663 | ||
664 | Implement C++17 constexpr if. | |
665 | * cp-tree.h (IF_STMT_CONSTEXPR_P): New. | |
666 | * name-lookup.c (push_to_top_level, pop_from_top_level_1): Handle it. | |
667 | * parser.h (struct cp_parser): Add in_discarded_stmt field. | |
668 | * parser.c (cp_parser_selection_statement): Handle 'if constexpr'. | |
669 | (cp_parser_jump_statement): Avoid deducing from a discarded return. | |
670 | * pt.c (tsubst_expr): Only instantiate taken branch of constexpr if. | |
671 | * semantics.c (begin_if_stmt): Set the binding level this_entity. | |
672 | (finish_if_stmt_cond): Require the condition of a | |
673 | constexpr if to be constant. | |
674 | * decl.c (level_for_constexpr_if): New. | |
675 | (named_label_entry): Add in_constexpr_if field. | |
676 | (poplevel_named_label_1): Set it. | |
677 | (check_goto): Check it. | |
678 | (check_previous_goto_1): Check level_for_constexpr_if. | |
679 | ||
23f4e590 JM |
680 | 2016-08-09 Jason Merrill <jason@redhat.com> |
681 | ||
f3365c12 JM |
682 | PR c++/68703 |
683 | * decl2.c (any_dependent_type_attributes_p): New. | |
684 | * pt.c (dependent_type_p_r, type_dependent_expression_p): Check it. | |
685 | * semantics.c (finish_id_expression): Check it. | |
686 | * typeck.c (finish_class_member_access_expr): Check it. | |
687 | ||
d676d623 JM |
688 | PR c++/71712 |
689 | * class.c (check_abi_tags): Don't duplicate tags for conversion ops. | |
690 | ||
7ab8c647 JM |
691 | Adjust mangling of ABI tags on class template member functions. |
692 | * class.c (missing_abi_tags): New. | |
693 | (check_abi_tags): Don't check template. Add just_checking mode. | |
694 | * mangle.c (abi_flag_at_least, any_abi_below, equal_abi_tags): New. | |
695 | (sorted_abi_tags): Split out from write_abi_tags. | |
696 | (struct releasing_vec): New. | |
697 | (write_unqualified_name): Only look for the primary | |
698 | template for types. Implement backward compatibility. | |
699 | ||
f4fce183 JM |
700 | PR c++/72849 |
701 | * constexpr.c (cxx_eval_constant_expression): Check | |
702 | COMPLETE_TYPE_P before calling is_really_empty_class. | |
703 | * class.c (is_really_empty_class): Don't call complete_type. | |
704 | ||
23f4e590 JM |
705 | PR c++/56701 |
706 | * typeck.c (cp_build_addr_expr_1): Remove special *this handling. | |
707 | ||
cadec7ca JJ |
708 | 2016-08-09 Jakub Jelinek <jakub@redhat.com> |
709 | ||
710 | PR c++/72809 | |
711 | * rtti.c (get_pseudo_ti_index): Return TK_CLASS_TYPE for | |
712 | builtin aggregate types without TYPE_BINFO. | |
713 | ||
98e5a19a JM |
714 | 2016-08-08 Jason Merrill <jason@redhat.com> |
715 | ||
716 | Implement C++17 constexpr lambda. | |
717 | * class.c (finalize_literal_type_property): Handle lambdas. | |
718 | * constexpr.c (is_valid_constexpr_fn): Likewise. No longer static. | |
719 | (explain_invalid_constexpr_fn, cxx_eval_call_expression): Handle | |
720 | lambdas. | |
721 | (cxx_eval_constant_expression): Handle capture proxy. | |
722 | (var_in_constexpr_fn): Don't check for C++14. | |
723 | (var_in_maybe_constexpr_fn): New. | |
724 | (potential_constant_expression_1): Use it. Check DECL_EXPR for | |
725 | declarations not allowed in constexpr function. Handle | |
726 | STATIC_ASSERT, RANGE_FOR_STMT. | |
727 | * decl.c (make_rtl_for_nonlocal_decl): Use var_in_maybe_constexpr_fn. | |
728 | (finish_function): Set DECL_DECLARED_CONSTEXPR_P on lambda members. | |
729 | * lambda.c (begin_lambda_type): Set CLASSTYPE_LITERAL_P. | |
730 | (maybe_add_lambda_conv_op): Clear thunk CALL_EXPR location. | |
731 | (lambda_static_thunk_p): New. | |
732 | * parser.c (cp_keyword_starts_decl_specifier_p): Add RID_CONSTEXPR. | |
733 | (CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR): New enumerator. | |
734 | (cp_parser_decl_specifier_seq): Handle it. | |
735 | (cp_parser_lambda_declarator_opt): Use cp_parser_decl_specifier_seq. | |
736 | * pt.c (instantiate_class_template_1): Set CLASSTYPE_LITERAL_P. | |
737 | (tsubst_copy_and_build) [CALL_EXPR]: Propagate CALL_FROM_THUNK_P. | |
738 | * error.c (dump_function_decl): Check TFF_NO_TEMPLATE_BINDINGS. | |
739 | (dump_expr) [FUNCTION_DECL]: Pass it. | |
740 | ||
7dc2b4a2 JM |
741 | 2016-08-08 Jason Merrill <jason@redhat.com> |
742 | ||
743 | PR c++/67131 | |
744 | * class.c (is_really_empty_class): Call complete_type. | |
745 | * constexpr.c (cxx_eval_constant_expression): Check | |
746 | is_really_empty_class. | |
747 | (potential_constant_expression_1): Likewise. Check for error type. | |
748 | ||
5c934396 JJ |
749 | 2016-08-08 Jakub Jelinek <jakub@redhat.com> |
750 | ||
751 | PR c++/58706 | |
752 | * parser.c: Include tree-iterator.h. | |
753 | (cp_parser_omp_for_loop_init): Move lambda DECL_EXPRs from init | |
754 | to FOR_BLOCK. | |
755 | (cp_parser_omp_for_loop): Handle non-STATEMENT_LIST FOR_BLOCK | |
756 | entries. | |
757 | ||
fa76f2c6 JW |
758 | 2016-08-06 Jonathan Wakely <jwakely@redhat.com> |
759 | ||
760 | * call.c (convert_like_real): Harmonize diagnostics for invalid | |
761 | reference binding. | |
762 | ||
5c934396 | 763 | 2016-08-05 Martin Sebor <msebor@redhat.com> |
64d6d399 MS |
764 | |
765 | * constexpr.c (cxx_eval_store_expression): Remove hyphen from | |
766 | the spelling of "constant-expression" in diagnostic messages | |
767 | for consistency. | |
768 | (cxx_eval_constant_expression): Same. | |
769 | (cxx_eval_outermost_constant_expr): Same. | |
770 | (potential_constant_expression_1): Same. | |
771 | ||
4228ca19 NS |
772 | 2016-08-05 Nathan Sidwell <nathan@acm.org> |
773 | ||
774 | PR c++/68724 | |
775 | * pt.c (unify): TRAIT_EXPR is an expr. | |
776 | ||
4473482d PC |
777 | 2016-08-04 Paolo Carlini <paolo.carlini@oracle.com> |
778 | ||
779 | PR c++/72800 | |
780 | * lambda.c (add_capture): Check lambda_capture_field_type return | |
781 | value for error_mark_node. | |
782 | ||
08156df5 PP |
783 | 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org> |
784 | ||
785 | PR c++/72759 | |
786 | * pt.c (tsubst_qualified_id): Return error_mark_node if | |
787 | template_args is error_mark_node. | |
788 | ||
99676625 JM |
789 | 2016-08-04 Jason Merrill <jason@redhat.com> |
790 | ||
b9dc9ef6 JM |
791 | PR c++/72415 |
792 | * pt.c (tsubst_pack_expansion): Pull a single pack expansion out | |
793 | of the TREE_VEC. | |
794 | ||
6a7b9203 JM |
795 | * cp-tree.h (TYPE_UNNAMED_P): Rename from TYPE_ANONYMOUS_P. |
796 | (TYPE_WAS_UNNAMED): Rename from TYPE_WAS_ANONYMOUS. | |
797 | * class.c, decl.c, decl2.c, error.c, lambda.c, mangle.c, | |
798 | name-lookup.c, parser.c, pt.c, semantics.c, tree.c: Adjust. | |
799 | ||
99676625 JM |
800 | PR c++/72796 |
801 | * typeck.c (finish_class_member_access_expr): Avoid stripping | |
802 | SCOPE_REF to dependent base. | |
803 | ||
0b212d8c TS |
804 | 2016-08-04 Thomas Schwinge <thomas@codesourcery.com> |
805 | ||
ae9281fc TS |
806 | * parser.c (cp_ensure_no_oacc_routine): Improve diagnostics. |
807 | (cp_parser_late_parsing_cilk_simd_fn_info): Fix diagnostics. | |
808 | (cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine): | |
809 | Simplify code, and improve diagnostics. | |
810 | (cp_parser_oacc_routine): Likewise. Move pragma context | |
811 | checking... | |
812 | (cp_parser_pragma): ... here. | |
813 | ||
0b212d8c TS |
814 | * parser.h (struct cp_omp_declare_simd_data): New. |
815 | (struct cp_parser): Use it for oacc_routine member. | |
816 | * parser.c (cp_ensure_no_oacc_routine, cp_parser_oacc_routine) | |
817 | (cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine): | |
818 | Use it. Simplify code. | |
819 | (cp_parser_new): Initialize all members pointing to special | |
820 | parsing data structures. | |
821 | (cp_parser_cilk_simd_fn_vector_attrs): Initialize | |
822 | parser->cilk_simd_fn_info->clauses. | |
823 | (cp_parser_omp_declare_simd): Initialize | |
824 | parser->omp_declare_simd->clauses. | |
825 | (cp_parser_late_parsing_omp_declare_simd): Simplify code. | |
826 | ||
a0008434 MP |
827 | 2016-08-04 Marek Polacek <polacek@redhat.com> |
828 | ||
829 | PR c++/70229 | |
830 | * constexpr.c (check_constexpr_ctor_body_1): Allow typedef | |
831 | declarations. | |
832 | ||
1108a485 JM |
833 | 2016-08-01 Jason Merrill <jason@redhat.com> |
834 | ||
72a30e45 JM |
835 | * mangle.c (mangle_decl): Warn about mangled name change even if |
836 | DECL_REALLY_EXTERN. | |
837 | ||
884929e2 JM |
838 | * mangle.c (get_abi_tags): New. |
839 | (find_substitution, write_unqualified_name, write_abi_tags) | |
840 | (maybe_check_abi_tags): Use it. | |
841 | ||
352b8bab JM |
842 | * mangle.c (mangle_decl): Fix mangled name change warning. |
843 | ||
1108a485 JM |
844 | PR c++/72766 |
845 | * constexpr.c (cxx_eval_pointer_plus_expression): Check constancy | |
846 | of nelts. | |
847 | * cp-gimplify.c (cp_fully_fold): Only maybe_constant_value in | |
848 | C++11 and up. | |
849 | ||
94087e88 | 850 | 2016-07-30 Martin Sebor <msebor@redhat.com> |
8bada5cd MS |
851 | |
852 | PR c++/60760 | |
853 | PR c++/71091 | |
854 | * constexpr.c (cxx_eval_binary_expression): Reject invalid expressions | |
855 | involving null pointers. | |
856 | (cxx_eval_component_reference): Reject null pointer dereferences. | |
857 | (cxx_eval_indirect_ref): Reject indirecting through null pointers. | |
858 | (cxx_eval_constant_expression): Reject invalid expressions involving | |
859 | null pointers. | |
860 | ||
638fc14f MP |
861 | 2016-07-29 Marek Polacek <polacek@redhat.com> |
862 | ||
863 | PR c/71926 | |
864 | * semantics.c (maybe_convert_cond): Use the location of COND for the | |
865 | parentheses warning. | |
866 | ||
49b5925f JM |
867 | 2016-07-29 Jason Merrill <jason@redhat.com> |
868 | ||
201e6861 JM |
869 | * decl.c (build_enumerator): Tweak diagnostic. |
870 | ||
49b5925f JM |
871 | PR c++/72457 |
872 | * init.c (expand_aggr_init_1): Only handle value-init of bases. | |
873 | * constexpr.c (build_data_member_initialization): Handle multiple | |
874 | initializers for the same field. | |
875 | ||
f064da6a PC |
876 | 2016-07-28 Paolo Carlini <paolo.carlini@oracle.com> |
877 | ||
878 | PR c++/71665 | |
879 | * decl.c (build_enumerator): Check the type of the enumerator before | |
880 | calling cxx_constant_value. | |
881 | ||
270430ff JM |
882 | 2016-07-27 Jason Merrill <jason@redhat.com> |
883 | ||
884 | PR c++/71747 | |
885 | * pt.c (get_partial_spec_bindings): Replace tparms and spec_args | |
886 | parameters with spec_tmpl. Call push_tinst_level. | |
887 | (most_specialized_partial_spec): Adjust. | |
888 | (more_specialized_partial_spec): Adjust. | |
889 | ||
fd2bfee5 JM |
890 | 2016-07-25 Jason Merrill <jason@redhat.com> |
891 | ||
1509db23 JM |
892 | PR c++/65970 |
893 | * cp-gimplify.c (genericize_cp_loop): Revert location change. | |
894 | ||
47265942 JM |
895 | PR c++/71837 |
896 | * lambda.c (add_capture): Leave a pack expansion in a TREE_LIST. | |
897 | (build_lambda_object): Call build_x_compound_expr_from_list. | |
898 | * pt.c (tsubst) [DECLTYPE_TYPE]: Likewise. | |
899 | ||
fd8b207a JM |
900 | PR c++/71833 |
901 | PR c++/54440 | |
902 | * pt.c (coerce_template_parameter_pack): Fix logic for | |
903 | pack index. | |
904 | ||
5ec2cd9f JM |
905 | PR c++/65970 |
906 | * constexpr.c (cxx_eval_loop_expr): Count iterations. | |
907 | * cp-gimplify.c (genericize_cp_loop): Use start_locus even for | |
908 | infinite loops. | |
909 | ||
fd2bfee5 JM |
910 | PR c++/71972 |
911 | * constexpr.c (cxx_eval_array_reference): Handle looking for the | |
912 | value of an element we're currently modifying. | |
913 | ||
8a61db89 JM |
914 | 2016-07-24 Jason Merrill <jason@redhat.com> |
915 | ||
916 | PR c++/71515 | |
917 | * pt.c (resolve_typename_type): Try to avoid calling | |
918 | currently_open_class. | |
919 | ||
a6c690f4 JM |
920 | 2016-07-23 Jason Merrill <jason@redhat.com> |
921 | ||
bd84e560 JM |
922 | PR c++/66617 |
923 | * call.c (add_list_candidates): Handle VTT parm. | |
924 | (build_new_method_call_1): Likewise. | |
925 | ||
f388b7be JM |
926 | PR c++/55922 |
927 | PR c++/63151 | |
928 | * init.c (expand_aggr_init_1): Handle list-initialization from {}. | |
929 | ||
2dac37c0 JM |
930 | PR c++/70709 |
931 | * class.c (walk_subobject_offsets): Handle 0-length array. | |
932 | ||
71b3723a JM |
933 | PR c++/70778 |
934 | * pt.c (tsubst): Also substitute into the template of a | |
935 | BOUND_TEMPLATE_TEMPLATE_PARM. | |
936 | ||
6970223f JM |
937 | PR c++/71738 |
938 | * pt.c (lookup_template_class_1): Handle getting template from tsubst. | |
939 | ||
a6c690f4 JM |
940 | PR c++/71350 |
941 | * decl.c (reshape_init_r): Check complain for missing braces warning. | |
942 | ||
76178f67 JM |
943 | 2016-07-22 Jason Merrill <jason@redhat.com> |
944 | ||
478ed1fa JM |
945 | PR c++/71576 |
946 | * call.c (convert_like_real): Use lvalue_kind. | |
947 | ||
76178f67 JM |
948 | PR c++/71748 |
949 | PR c++/52746 | |
950 | * pt.c (tsubst_baselink): Call | |
951 | adjust_result_of_qualified_name_lookup for unqualified | |
952 | destructors. | |
953 | ||
d5ec842c JM |
954 | 2016-07-21 Jason Merrill <jason@redhat.com> |
955 | ||
6781e2af JM |
956 | PR c++/69223 |
957 | * semantics.c (apply_deduced_return_type): Call | |
958 | complete_type_or_else before building the new RESULT_DECL. | |
959 | ||
94ced5b4 JM |
960 | PR c++/71274 |
961 | * decl2.c (maybe_instantiate_decl): Split out from mark_used. | |
962 | (decl_constant_var_p): Use it instead. | |
963 | ||
44ed4754 JM |
964 | PR c++/71630 |
965 | * pt.c (instantiate_decl): Fix pattern_defined for namespace scope | |
966 | variable templates. | |
967 | ||
a93f3513 JM |
968 | PR c++/71913 |
969 | * call.c (unsafe_copy_elision_p): It's OK to elide when | |
970 | initializing an unknown object. | |
971 | ||
d5ec842c JM |
972 | * call.c (build_over_call): Check unsafe_copy_elision_p even for |
973 | trivial constructors. | |
974 | * method.c (do_build_copy_constructor): Don't copy tail padding | |
975 | even in a trivial constructor. | |
976 | ||
ab3af181 JJ |
977 | 2016-07-21 Jakub Jelinek <jakub@redhat.com> |
978 | ||
979 | PR c++/71728 | |
980 | * constexpr.c (potential_constant_expression_1) <case GOTO_EXPR>: | |
981 | Replace assert with test, return false if the goto isn't break | |
982 | or continue. Formatting fix. | |
983 | ||
01771d43 RB |
984 | 2016-07-21 Richard Biener <rguenther@suse.de> |
985 | ||
986 | * vtable-class-hierarchy.c (vtv_generate_init_routine): Set | |
987 | DECL_IGNORED_P. | |
988 | ||
ee78cbaa JJ |
989 | 2016-07-21 Jakub Jelinek <jakub@redhat.com> |
990 | ||
991 | PR c++/71941 | |
992 | * cp-gimplify.c (cp_genericize): For nested cp_genericize calls | |
993 | save/restore bc_label array. | |
994 | ||
e96fe88c JM |
995 | 2016-07-21 Jason Merrill <jason@redhat.com> |
996 | ||
172f0e13 JM |
997 | PR c++/70781 |
998 | * parser.c (cp_parser_lambda_expression): Unset OK if there was an | |
999 | error parsing the lambda-declarator. | |
1000 | ||
dd5dda56 JM |
1001 | PR c++/71896 |
1002 | * constexpr.c (cxx_eval_binary_expression): Handle comparison | |
1003 | between lowered and unlowered PTRMEM_CST. | |
1004 | ||
451dcc66 JM |
1005 | PR c++/65168 |
1006 | * typeck.c (cp_truthvalue_conversion): Compare pointers to nullptr. | |
1007 | Don't set c_inhibit_evaluation_warnings. | |
1008 | ||
e96fe88c JM |
1009 | PR c++/71121 |
1010 | * cp-gimplify.c (cp_fully_fold): First call maybe_constant_value. | |
1011 | ||
f078dc7d AS |
1012 | 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com> |
1013 | Jason Merrill <jason@redhat.com> | |
1014 | ||
1015 | Improving concepts performance and diagnostics. | |
1016 | PR c++/67565 | |
1017 | PR c++/67579 | |
1018 | PR c++/71843 | |
1019 | * cp-tree.def (CHECK_CONSTR): New. | |
1020 | * cp-tree.h (CHECK_CONSTR_CONCEPT): New. | |
1021 | (CHECK_CONSTR_ARGS): New. | |
1022 | * constraint.cc (make_predicate_constraint): Remove in favor of | |
1023 | normalize_expression. | |
1024 | (resolve_constraint_check): Actually return error_mark_node when | |
1025 | resolution fails. | |
1026 | (resolve_variable_concept_check): Perform coercion as if processing | |
1027 | a template. Also return errors on resolution failure. | |
1028 | (lift_*): Remove all of these functions. Don't unnecessarily inline | |
1029 | concepts. | |
1030 | (learn_*): Add facilities to memoize implications for subsumption | |
1031 | during normalization. | |
1032 | (expanding_concept): New. | |
1033 | (expand_concept): New. Return the inlined and normalized definition | |
1034 | of a concept when needed. | |
1035 | (transform_*, xform_*): Rename to normalize_* to better reflect the | |
1036 | responsibility of those functions. | |
1037 | (normalize_template_id_expression): Check for non-boolean operands | |
1038 | when possible. Generate check constraints instead of normal variable | |
1039 | references. | |
1040 | (normalize_call_expression): Report errors when resolution fails. | |
1041 | (check_for_logical_overloads): Rewrite this check to more accurately | |
1042 | report the error. | |
1043 | (normalize_atom): Check for overloaded calls and invalid types before | |
1044 | determining if the expression refers to a concept. | |
1045 | (build_constraints): Don't cache normalized constraints or decomposed | |
1046 | assumptions. | |
1047 | (finish_shorthand_constraint): Return a normalized expression instead | |
1048 | of a predicate constraint. | |
1049 | (finish_template_introduction): Same. | |
1050 | (placeholder_extract_concept_and_args): Rewrite this since we only | |
1051 | ever get check constraints here. | |
1052 | (equivalent_placeholder_constraints): Rewrite in terms of check | |
1053 | constraints, and handle error_mark_nodes correctly. | |
1054 | (tsubst_check_constraint, tsubst_expr_constr, tsubst_type_constr) | |
1055 | (tsubst_implicit_conversion_constr) | |
1056 | (tsubst_argument_deduction_constr, tsubst_exception_constr) | |
1057 | (tsubst_parameterized_constraint, tsubst_constraint): New. | |
1058 | (tsbust_conjunection): Replace with tsubst_logical_operator and | |
1059 | actually generate the right kind of constraint. | |
1060 | (tsubst_requirement_body): Reverse the order of substituted arguments | |
1061 | so that they appear in the order written (helps diagnostics). | |
1062 | (satisfy_check_constraint): New. | |
1063 | (satisfy_conjunction): Simplify. | |
1064 | (satisfy_disjunction): Same. | |
1065 | (satisfy_constraint_1): Handle check constraints. | |
1066 | (eval_constr): New (private) global state. | |
1067 | (evaluating_constraints_sentinel): New. Manages eval_constr. | |
1068 | (satisfy_constraint): Add timing variables. | |
1069 | (satisfy_associated_constraints): Add hooks for memoization. | |
1070 | (evaluate_function_concept): Build a check constraint instead of | |
1071 | normalizing its definition. | |
1072 | (evaluate_variable_concept): Same. | |
1073 | (evaluate_constraint_expression): Normalize, but in the current | |
1074 | declaration processing context. | |
1075 | (evaluating_constraints_p): New. | |
1076 | (elide_constraint_failure_p): Actually emit constraint_thresh errors. | |
1077 | (diagnose_*): Remove artificial indentation. Add a new parameter to | |
1078 | each that tracks the current (complete) constraint prior to any | |
1079 | substitutions. | |
1080 | (diagnose_expression): Removed. | |
1081 | (diagnose_call_expression): Same. | |
1082 | (diagnose_template_id): Same. | |
1083 | (diagnose_template_id): New. | |
1084 | (diagnose_logical_constraint): New. | |
1085 | (diagnose_expression_constraint): Show the original expression. | |
1086 | (diagnose_type_constraint): Show the original type. | |
1087 | (diagnose_implicit_conversion_constraint): Be specific about | |
1088 | failures, don't re-diagnose a known-to-be-failed substitutions, | |
1089 | and manage elisions properly. | |
1090 | (diagnose_argument_deduction_constraint): Same. | |
1091 | (diagnose_exception_constraint): Same. | |
1092 | (diagnose_parameterized_constraint): Same. | |
1093 | (constraint_p): Allow EXPR_PACK_EXPANSION. | |
1094 | * logic.cc (next_by_distance): Removed. No longer used. | |
1095 | (any_p): Renamed from any_of. | |
1096 | (term_entry, term_hasher): New. | |
1097 | (term_list): Rewrite to include a hash table for quick lookup. | |
1098 | Also, make less stateful. | |
1099 | (proof_state): Extend to allow goals to be discharged once | |
1100 | satisfied. | |
1101 | (non_atomic_constraint_p): New. | |
1102 | (any_non_atomic_constraints_p): New. | |
1103 | (...rest...): Previous implementation completely replaced with an | |
1104 | iterative algorithm that opportunistically prunes the search space | |
1105 | before committing to using more memory. | |
1106 | * parser.c: (cp_parser_type_parameter): Normalize constraints. | |
1107 | (cp_parser_explicit_template_declaration): Same. | |
1108 | * pt.c: (finish_template_variable): Be less redundant with this error | |
1109 | message. | |
1110 | (template_args_equal): No longer static. | |
1111 | (tsubst_decl): Don't try to find specializations of variables that | |
1112 | have already been instantiated. | |
1113 | (build_non_dependent_expr): Avoid infinite recursion during concept | |
1114 | expansion. | |
1115 | (make_constrained_auto): Normalize constraints. | |
1116 | (do_auto_deduction): When doing auto deduction from a | |
1117 | partial-concept-id, be sure to include the explicit args checking | |
1118 | the constraints. | |
1119 | (constraint_sat_*): New. Memoize satisfied constraints. | |
1120 | (concept_spec_*): New. Memoize expressions associated with a concept | |
1121 | specialization. | |
1122 | (constraint_memos, concept_memos): New. | |
1123 | (lookup_constraint_satisfaction, memoize_constraint_satisfaction): New. | |
1124 | (lookup_concept_satisfaction, memoize_concept_satisfaction): New. | |
1125 | (get_concept_expansion, save_concept_expansion): New. | |
1126 | (hash_subsumption_args): New. | |
1127 | (comp_subsumption_args): New. | |
1128 | (subsumption_*): New. Memoize parts of the subsumption relation. | |
1129 | (lookup_subsumption_result, save_subsumption_result): New. | |
1130 | (init_constraint_processing): Initialize memo tables. | |
1131 | (get_constraints): Shortcut if !flag_concepts. | |
1132 | * decl.c (grokfndecl): Normalize constraints. | |
1133 | * error.c (dump_simple_decl): Print "concept" when appropriate. | |
1134 | (dump_function_decl): Same. | |
1135 | (dump_template_decl): Don't write requirements when we're not | |
1136 | printing the header. | |
1137 | (dump_expr): Handle fold expressions. | |
1138 | * cxx-pretty-print.c (cxx_pretty_printer::expression): Handle | |
1139 | fold expressions. | |
1140 | (get_fold_operator): New. | |
1141 | (pp_cxx_unary_left_fold_expression): New. | |
1142 | (pp_cxx_unary_right_fold_expression): New. | |
1143 | (pp_cxx_binary_fold_expression): New. | |
1144 | (pp_cxx_check_constraint): New. | |
1145 | (pp_cxx_*_constraint): Rewrite the grammar of internal constraints | |
1146 | to make them easier to read when debugging. | |
1147 | * search.c (accessible_p): Don't shortcut when evaluating constraints. | |
1148 | * tree.c (cp_tree_equal): Handle CHECK_CONSTR. | |
1149 | ||
52ed68f7 DM |
1150 | 2016-07-20 David Malcolm <dmalcolm@redhat.com> |
1151 | ||
1152 | PR c/70339 | |
1153 | PR c/71858 | |
1154 | * name-lookup.c: Include gcc-rich-location.h, spellcheck-tree.h, | |
1155 | and parser.h. | |
1156 | (suggest_alternatives_for): If no candidates are found, try | |
1157 | lookup_name_fuzzy and report if if finds a suggestion. | |
1158 | (consider_binding_level): New function. | |
1159 | (lookup_name_fuzzy) New function. | |
1160 | * parser.c: Include gcc-rich-location.h. | |
1161 | (cp_lexer_next_token_is_decl_specifier_keyword): Move most of | |
1162 | logic into... | |
1163 | (cp_keyword_starts_decl_specifier_p): ...this new function. | |
1164 | (cp_parser_diagnose_invalid_type_name): When issuing | |
1165 | "does not name a type" errors, attempt to make a suggestion using | |
1166 | lookup_name_fuzzy. | |
1167 | * parser.h (cp_keyword_starts_decl_specifier_p): New prototype. | |
1168 | * search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Reject | |
1169 | types that are not CLASS_TYPE_P, rather than rejecting individual | |
1170 | tree codes. | |
1171 | ||
109d2197 JJ |
1172 | 2016-07-20 Jakub Jelinek <jakub@redhat.com> |
1173 | ||
7419f441 JJ |
1174 | PR c++/71909 |
1175 | * parser.c (cp_parser_save_member_function_body): Consume | |
1176 | __transaction_relaxed or __transaction_atomic with optional | |
1177 | attribute. Only skip catch with block if try keyword is seen. | |
1178 | ||
109d2197 JJ |
1179 | PR c++/50060 |
1180 | * constexpr.c (cxx_eval_builtin_function_call): Pass false as lval | |
1181 | when evaluating call arguments. Use fold_builtin_call_array instead | |
1182 | of fold_build_call_array_loc, return t if it returns NULL. Otherwise | |
1183 | check the result with potential_constant_expression and call | |
1184 | cxx_eval_constant_expression on it. | |
1185 | ||
43694e8b JM |
1186 | 2016-07-19 Jason Merrill <jason@redhat.com> |
1187 | ||
1188 | PR c++/67164 | |
1189 | * pt.c (iterative_hash_template_arg, template_args_equal): Don't | |
1190 | handle ARGUMENT_PACK_SELECT. | |
1191 | ||
f2111a36 JJ |
1192 | 2016-07-18 Jakub Jelinek <jakub@redhat.com> |
1193 | ||
e43ebb12 JJ |
1194 | PR c++/70869 |
1195 | PR c++/71054 | |
1196 | * cp-gimplify.c (cp_genericize_r): Revert the 2016-07-07 change. | |
1197 | * tree.c (cp_walk_subtrees): For DECL_EXPR on DECL_ARTIFICIAL | |
1198 | non-static VAR_DECL, walk the decl's DECL_INITIAL, DECL_SIZE and | |
1199 | DECL_SIZE_UNIT. | |
1200 | ||
99516432 JJ |
1201 | PR c++/71835 |
1202 | * call.c (build_op_call_1): Use convert_like_with_context only | |
1203 | if cand->fn is a decl. | |
1204 | ||
87713c6a JJ |
1205 | PR c++/71828 |
1206 | * constexpr.c (cxx_eval_constant_expression) <case REALPART_EXPR>: | |
1207 | For lval don't use cxx_eval_unary_expression and instead recurse | |
1208 | and if needed rebuild the reference. | |
1209 | ||
7a7f16ca JJ |
1210 | PR c++/71826 |
1211 | * pt.c (tsubst_baselink): Only set BASELINK_OPTYPE for BASELINK_P. | |
1212 | ||
f4d90295 JJ |
1213 | PR c++/71822 |
1214 | * cp-gimplify.c (cp_gimplify_expr) <case VEC_INIT_EXPR>: Recursively | |
1215 | fold *expr_p before genericizing it. | |
1216 | ||
f2111a36 JJ |
1217 | PR c++/71871 |
1218 | * typeck.c (build_x_conditional_expr): Revert the 2012-10-25 change. | |
1219 | ||
d1dfa20d JM |
1220 | 2016-07-15 Jason Merrill <jason@redhat.com> |
1221 | ||
37a80bf9 JM |
1222 | PR c++/71495 |
1223 | * call.c (convert_like_real): Mask complain. | |
1224 | * semantics.c (perform_koenig_lookup): Likewise. | |
1225 | ||
de54de93 JM |
1226 | PR c++/71092 |
1227 | * constexpr.c (cxx_eval_call_expression): Fail quietly when cgraph | |
1228 | threw away DECL_SAVED_TREE. | |
1229 | ||
4d031550 JM |
1230 | PR c++/71117 |
1231 | Core 2189 | |
1232 | * call.c (add_template_conv_candidate): Disable if there are | |
1233 | viable candidates. | |
1234 | ||
2a54351b JM |
1235 | PR c++/71511 |
1236 | * typeck2.c (cxx_incomplete_type_diagnostic): Handle DECLTYPE_TYPE. | |
1237 | ||
1019d191 JM |
1238 | PR c++/71513 |
1239 | * pt.c (tsubst_attributes): Fix loop logic. | |
1240 | ||
37a92c0c JM |
1241 | PR c++/71604 |
1242 | PR c++/54430 | |
1243 | * parser.c (cp_parser_range_for): Modify IDENTIFIER_BINDING directly. | |
1244 | (cp_parser_simple_declaration): Diagnose type definition in | |
1245 | for-range-declaration. | |
1246 | ||
aa30dfad JM |
1247 | PR c++/71711 |
1248 | * operators.def: Add *_FOLD_EXPR. | |
1249 | * cp-tree.h (FOLD_EXPR_P): Parenthesize. | |
1250 | * mangle.c (write_expression): Handle fold-expressions. | |
1251 | * pt.c (tsubst_unary_left_fold, tsubst_binary_left_fold) | |
1252 | (tsubst_unary_right_fold, tsubst_binary_right_fold): Handle | |
1253 | partial instantiation. | |
1254 | ||
34bbc4c5 JM |
1255 | PR c++/71814 |
1256 | * mangle.c (write_expression): Handle sizeof... an argument pack. | |
1257 | ||
9ee2cecc JM |
1258 | PR c++/71718 |
1259 | * pt.c (push_tinst_level_loc): Set at_eof before fatal_error. | |
1260 | ||
d1dfa20d JM |
1261 | PR c++/70824 |
1262 | * init.c (constant_value_1): Don't instantiated DECL_INITIAL of | |
1263 | artificial variables. | |
1264 | ||
b1c9c068 CP |
1265 | 2016-07-15 Cesar Philippidis <cesar@codesourcery.com> |
1266 | ||
1267 | * parser.c (cp_parser_oacc_declare): Don't scan for | |
1268 | GOMP_MAP_POINTER. | |
1269 | * semantics.c (handle_omp_array_sections): Mark data clauses with | |
1270 | GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having | |
1271 | zero-length subarrays. | |
1272 | ||
9a54f10d JM |
1273 | 2016-07-11 Jason Merrill <jason@redhat.com> |
1274 | ||
1275 | * decl.c (store_parm_decls): Remove check for void parm. | |
1276 | ||
d0cf395a JM |
1277 | 2016-07-08 Jason Merrill <jason@redhat.com> |
1278 | ||
72b3e203 JM |
1279 | * cp-tree.h: Unpoison lvalue_p. |
1280 | * call.c, class.c, constexpr.c, cvt.c, init.c, lambda.c, pt.c, | |
1281 | tree.c, typeck.c, typeck2.c: Use lvalue_p instead of | |
1282 | real_lvalue_p. | |
1283 | ||
bb19d4af JM |
1284 | * tree.c (obvalue_p): Rename from lvalue_p. |
1285 | (lvalue_p): Define for c-common. | |
1286 | * call.c, cp-tree.h, cvt.c, init.c: Adjust. | |
1287 | * typeck.c: Adjust. | |
1288 | (cp_build_addr_expr_1): Remove obsolete code. | |
1289 | ||
c3edc633 JM |
1290 | * tree.c (glvalue_p): Rename from lvalue_or_rvalue_with_address_p. |
1291 | * call.c, cp-tree.h, typeck.c: Adjust. | |
1292 | ||
0596c448 JM |
1293 | * lambda.c (maybe_add_lambda_conv_op): Fix null object argument. |
1294 | ||
d0cf395a | 1295 | P0145R2: Refining Expression Order for C++. |
65a550b4 JM |
1296 | * cp-gimplify.c (lvalue_has_side_effects): New. |
1297 | (cp_gimplify_expr): Implement assignment ordering. | |
d0cf395a JM |
1298 | * call.c (op_is_ordered, build_over_call): Adjust for |
1299 | -fargs-in-order renaming to -fstrong-eval-order. | |
1300 | * cp-gimplify.c (cp_gimplify_expr): Likewise. | |
1301 | ||
842dc2e6 JJ |
1302 | 2016-07-07 Jakub Jelinek <jakub@redhat.com> |
1303 | Kai Tietz <ktietz70@googlemail.com> | |
1304 | ||
1305 | PR c++/70869 | |
1306 | PR c++/71054 | |
1307 | * cp-gimplify.c (cp_genericize_r): For DECL_EXPR for non-static | |
1308 | artificial vars, genericize their initializers. | |
1309 | ||
84ca3893 DM |
1310 | 2016-07-05 David Malcolm <dmalcolm@redhat.com> |
1311 | ||
1312 | PR c++/62314 | |
1313 | * parser.c (cp_parser_class_specifier_1): When reporting | |
1314 | missing semicolons, use a fixit-hint to suggest insertion | |
1315 | of a semicolon immediately after the closing brace, | |
1316 | offsetting the reported column accordingly. | |
1317 | ||
79335075 JB |
1318 | 2016-07-04 Jan Beulich <jbeulich@suse.com> |
1319 | ||
1320 | * lang-specs.h ("@c++-header"): Conditionalize "-o". | |
1321 | ||
54d19c3b TS |
1322 | 2016-06-29 Thomas Schwinge <thomas@codesourcery.com> |
1323 | ||
1324 | * parser.c (cp_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>: | |
1325 | Move pragma context checking into... | |
1326 | (cp_parser_omp_cancellation_point): ... here, and improve | |
1327 | diagnostic messages. | |
1328 | * semantics.c (finish_omp_cancel, finish_omp_cancellation_point): | |
1329 | Improve diagnostic messages. | |
1330 | ||
e9ac1f86 JJ |
1331 | 2016-06-28 Jakub Jelinek <jakub@redhat.com> |
1332 | ||
1333 | * Make-lang.in: Don't cat ../stage_current if it does not exist. | |
1334 | ||
6e085858 JM |
1335 | 2016-06-24 Jason Merrill <jason@redhat.com> |
1336 | ||
a25bd9e6 JM |
1337 | P0145R2: Refining Expression Order for C++. |
1338 | * typeck.c (cp_build_modify_expr): Leave COMPOUND_EXPR on LHS. | |
1339 | ||
6e085858 JM |
1340 | * tree.c (get_target_expr_sfinae): Handle bit-fields. |
1341 | (build_target_expr): Call mark_rvalue_use. | |
1342 | ||
00085092 JJ |
1343 | 2016-06-24 Jakub Jelinek <jakub@redhat.com> |
1344 | ||
1345 | * call.c (magic_varargs_p): Return 3 for __builtin_*_overflow_p. | |
1346 | (build_over_call): For magic == 3, do no conversion only on 3rd | |
1347 | argument. | |
1348 | ||
277d7ee0 AK |
1349 | 2016-06-23 Andi Kleen <ak@linux.intel.com> |
1350 | ||
1351 | * Make-lang.in: Add support for autofdo. | |
1352 | ||
e547455b JM |
1353 | 2016-06-21 Jason Merrill <jason@redhat.com> |
1354 | ||
2befd3f7 JM |
1355 | * constraint.cc (constraints_satisfied_p): Keep as many levels of |
1356 | args as our template has levels of parms. | |
1357 | ||
e547455b JM |
1358 | * pt.c (template_parm_outer_level, uses_outer_template_parms): New. |
1359 | (type_dependent_expression_p): Use uses_outer_template_parms. | |
1360 | ||
842107e4 DM |
1361 | 2016-06-20 David Malcolm <dmalcolm@redhat.com> |
1362 | ||
1363 | * parser.c (cp_parser_string_literal): Convert non-standard | |
1364 | concatenation error to directly use a rich_location, and | |
1365 | use that to add the location of the first literal to the | |
1366 | diagnostic. | |
1367 | ||
c561b091 PC |
1368 | 2016-06-17 Paolo Carlini <paolo.carlini@oracle.com> |
1369 | ||
1370 | * decl.c (validate_constexpr_redeclaration): Change pair of errors | |
1371 | to error + inform. | |
1372 | * error.c (dump_function_decl): Save the constexpr specifier too. | |
1373 | ||
ce209777 JJ |
1374 | 2016-06-17 Jakub Jelinek <jakub@redhat.com> |
1375 | ||
1376 | * tree.c (builtin_valid_in_constant_expr_p): Test for | |
1377 | DECL_BUILT_IN_CLASS equal to BUILT_IN_NORMAL instead of just | |
1378 | DECL_BUILT_IN. | |
1379 | (bot_manip): Likewise. | |
1380 | * call.c (magic_varargs_p): Likewise. | |
1381 | ||
bf54f123 PC |
1382 | 2016-06-17 Paolo Carlini <paolo.carlini@oracle.com> |
1383 | ||
1384 | * decl.c (grokfndecl): Change pair of errors to error + inform. | |
1385 | ||
92354dc7 JM |
1386 | 2016-06-17 Jason Merrill <jason@redhat.com> |
1387 | ||
1388 | PR c++/71209 | |
1389 | * typeck.c (finish_class_member_access_expr): Avoid "not a base" | |
1390 | warning when there are dependent bases. | |
1391 | ||
9b6a8d0f JJ |
1392 | 2016-06-17 Jakub Jelinek <jakub@redhat.com> |
1393 | ||
1394 | * semantics.c (handle_omp_array_sections_1): Don't ICE when | |
1395 | processing_template_decl when checking for bitfields and unions. | |
1396 | Look through REFERENCE_REF_P as base of COMPONENT_REF. | |
1397 | (finish_omp_clauses): Look through REFERENCE_REF_P even for | |
1398 | array sections with COMPONENT_REF bases. | |
1399 | ||
283635f9 JJ |
1400 | 2016-06-16 Jakub Jelinek <jakub@redhat.com> |
1401 | ||
1402 | * parser.c (cp_parser_omp_var_list_no_open): Call | |
1403 | convert_from_reference before cp_parser_postfix_dot_deref_expression. | |
1404 | * semantics.c (finish_omp_clauses): Don't ICE when | |
1405 | processing_template_decl when checking for bitfields and unions. | |
1406 | Look through REFERENCE_REF_P as base of COMPONENT_REF. | |
1407 | ||
c5f914a3 PC |
1408 | 2016-06-15 Paolo Carlini <paolo.carlini@oracle.com> |
1409 | ||
1410 | * decl.c (wrapup_globals_for_namespace): Use DECL_SOURCE_LOCATION and | |
1411 | "%qF" in warning_at instead of "%q+F" in warning. | |
1412 | (check_redeclaration_exception_specification): Likewise in pedwarn | |
1413 | (and error, inform, for consistency). | |
1414 | * call.c (joust): Likewise. | |
1415 | ||
b8911cb8 PC |
1416 | 2016-06-15 Paolo Carlini <paolo.carlini@oracle.com> |
1417 | ||
1418 | PR c++/70202 | |
1419 | * decl.c (xref_basetypes): Revert r117839 changes; add fix-up | |
1420 | code at the end of the for loop; also revert r159637 changes, | |
1421 | add back the gcc_assert. | |
1422 | * cp-tree.h (xref_basetypes): Adjust declaration. | |
1423 | * parser.c (cp_parser_class_head): Adjust xref_basetypes call. | |
1424 | ||
6a3f203c DM |
1425 | 2016-06-14 David Malcolm <dmalcolm@redhat.com> |
1426 | ||
1427 | * search.c: Include spellcheck-tree.h rather than spellcheck.h. | |
1428 | ||
264757fb DM |
1429 | 2016-06-14 David Malcolm <dmalcolm@redhat.com> |
1430 | ||
1431 | * typeck.c: Include "gcc-rich-location.h". | |
1432 | (finish_class_member_access_expr): Simplify fixit code by | |
1433 | using gcc_rich_location::add_fixit_misspelled_id. | |
1434 | ||
4eb24e01 JM |
1435 | 2016-06-14 Jason Merrill <jason@redhat.com> |
1436 | ||
1437 | P0145R2: Refining Expression Order for C++. | |
1438 | * cp-tree.h (CALL_EXPR_OPERATOR_SYNTAX, CALL_EXPR_ORDERED_ARGS) | |
1439 | (CALL_EXPR_REVERSE_ARGS): New. | |
1440 | * call.c (build_new_op_1): Set them. | |
1441 | (extract_call_expr, op_is_ordered): New. | |
1442 | (build_over_call): Set CALL_EXPR_ORDERED_ARGS. | |
1443 | * cp-gimplify.c (cp_gimplify_expr) [CALL_EXPR]: Handle new flags. | |
1444 | * pt.c (tsubst_copy_and_build): Copy new flags. | |
1445 | * semantics.c (simplify_aggr_init_expr): Likewise. | |
1446 | * tree.c (build_aggr_init_expr): Likewise. | |
1447 | (build_min_non_dep_op_overload): Likewise. | |
1448 | ||
abe7f828 JJ |
1449 | 2016-06-14 Jakub Jelinek <jakub@redhat.com> |
1450 | ||
a09c81b4 JJ |
1451 | PR c++/71528 |
1452 | * decl.c (duplicate_decls): For DECL_INITIALIZED_P non-external | |
1453 | olddecl vars, preserve their TREE_READONLY bit. | |
1454 | ||
abe7f828 JJ |
1455 | PR c++/71516 |
1456 | * decl.c (complete_vars): Handle gracefully type == error_mark_node. | |
1457 | ||
acfadf06 PC |
1458 | 2016-06-14 Paolo Carlini <paolo.carlini@oracle.com> |
1459 | ||
1460 | * typeck2.c (digest_init_r): Use EXPR_LOC_OR_LOC on init. | |
1461 | ||
f423253b PC |
1462 | 2016-06-13 Paolo Carlini <paolo.carlini@oracle.com> |
1463 | ||
1464 | * decl.c (grokdeclarator): Fix typo in pedwarn text. | |
1465 | ||
4b1ffdb1 TS |
1466 | 2016-06-10 Thomas Schwinge <thomas@codesourcery.com> |
1467 | ||
1468 | PR c/71381 | |
1469 | * parser.c (cp_parser_omp_var_list_no_open) <OMP_CLAUSE__CACHE_>: | |
1470 | Loosen checking. | |
1471 | ||
392a81b9 PC |
1472 | 2016-06-09 Paolo Carlini <paolo.carlini@oracle.com> |
1473 | ||
1474 | PR c++/71465 | |
1475 | Revert: | |
1476 | 2016-06-04 Paolo Carlini <paolo.carlini@oracle.com> | |
1477 | ||
1478 | PR c++/70202 | |
1479 | * parser.c (cp_parser_class_head): When xref_basetypes fails and | |
1480 | emits an error do not zero the type. | |
1481 | ||
c8a71589 PC |
1482 | 2016-06-08 Paolo Carlini <paolo.carlini@oracle.com> |
1483 | ||
1484 | * decl.c (maybe_deduce_size_from_array_init): Use | |
1485 | DECL_SOURCE_LOCATION in error_at. | |
1486 | (layout_var_decl): Likewise. | |
1487 | (check_array_initializer): Likewise. | |
1488 | (check_initializer): Likewise. | |
1489 | (duplicate_decls, check_elaborated_type_specifier): Tidy. | |
1490 | ||
44a845ca MS |
1491 | 2016-06-08 Martin Sebor <msebor@redhat.com> |
1492 | Jakub Jelinek <jakub@redhat.com> | |
1493 | ||
1494 | PR c++/70507 | |
1495 | PR c/68120 | |
1496 | * constexpr.c: Include gimple-fold.h. | |
1497 | (cxx_eval_internal_function): New function. | |
1498 | (cxx_eval_call_expression): Call it. | |
1499 | (potential_constant_expression_1): Handle integer arithmetic | |
1500 | overflow built-ins. | |
1501 | * tree.c (builtin_valid_in_constant_expr_p): Handle | |
1502 | BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P. | |
1503 | ||
f07063cc PC |
1504 | 2016-06-08 Paolo Carlini <paolo.carlini@oracle.com> |
1505 | ||
1506 | * pt.c (tsubst, case TYPENAME_TYPE): Don't delay checking the | |
1507 | return value of tsubst_aggr_type for error_mark_node. | |
1508 | ||
2ef16b6e JJ |
1509 | 2016-06-08 Jakub Jelinek <jakub@redhat.com> |
1510 | ||
1511 | PR c++/71442 | |
1512 | * pt.c (tsubst_copy): Only set TREE_USED on DECLs. | |
1513 | ||
6f5bcd24 JJ |
1514 | 2016-06-06 Jakub Jelinek <jakub@redhat.com> |
1515 | Patrick Palka <ppalka@gcc.gnu.org> | |
1516 | ||
1517 | PR c++/70847 | |
1518 | PR c++/71330 | |
1519 | PR c++/71393 | |
1520 | * cp-gimplify.c (cp_fold_r): Set *walk_subtrees = 0 and return NULL | |
1521 | right after cp_fold call if cp_fold has returned the same stmt | |
1522 | already in some earlier cp_fold_r call. | |
1523 | (cp_fold_function): Add pset automatic variable, pass its address | |
1524 | to cp_walk_tree. | |
1525 | ||
909a11ad PC |
1526 | 2016-06-04 Paolo Carlini <paolo.carlini@oracle.com> |
1527 | ||
1528 | PR c++/70202 | |
1529 | * parser.c (cp_parser_class_head): When xref_basetypes fails and | |
1530 | emits an error do not zero the type. | |
1531 | ||
c8572dd6 PP |
1532 | 2016-06-03 Patrick Palka <ppalka@gcc.gnu.org> |
1533 | ||
1534 | PR c++/27100 | |
1535 | * decl.c (duplicate_decls): Properly copy the | |
1536 | DECL_PENDING_INLINE_P, DECL_PENDING_INLINE_INFO and | |
1537 | DECL_SAVED_FUNCTION_DATA fields from OLDDECL to NEWDECL. | |
1538 | ||
b605f663 CLT |
1539 | 2016-06-03 Chung-Lin Tang <cltang@codesourcery.com> |
1540 | ||
1541 | * semantics.c (finish_omp_clauses): Mark OpenACC reduction | |
1542 | arguments as addressable when async clause exists. | |
1543 | ||
bfeee8ac JH |
1544 | 2016-06-02 Jan Hubicka <jh@suse.cz> |
1545 | ||
1546 | * cp-gimplify.c (genericize_continue_stmt): Force addition of | |
1547 | predict stmt. | |
1548 | ||
b872d729 PC |
1549 | 2016-06-02 Paolo Carlini <paolo.carlini@oracle.com> |
1550 | ||
1551 | * decl.c (xref_tag_1): Change pairs of errors to error + inform. | |
1552 | (start_enum): Likewise. | |
1553 | * parser.c (cp_parser_class_head): Likewise. | |
1554 | ||
0633ee10 JJ |
1555 | 2016-06-02 Jakub Jelinek <jakub@redhat.com> |
1556 | ||
1557 | PR c++/71372 | |
1558 | * cp-gimplify.c (cp_fold): For INDIRECT_REF, if the folded expression | |
1559 | is INDIRECT_REF or MEM_REF, copy over TREE_READONLY, TREE_SIDE_EFFECTS | |
1560 | and TREE_THIS_VOLATILE flags. For ARRAY_REF and ARRAY_RANGE_REF, copy | |
1561 | over TREE_READONLY, TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE flags | |
1562 | to the newly built tree. | |
1563 | ||
f795360d JM |
1564 | 2016-05-31 Jason Merrill <jason@redhat.com> |
1565 | ||
8d857afc JM |
1566 | * pt.c (instantiate_decl): Avoid recalculation. |
1567 | ||
1f032c53 JM |
1568 | PR c++/60095 |
1569 | PR c++/69515 | |
1570 | PR c++/69009 | |
1571 | * pt.c (instantiate_template_1): Don't put the partial | |
1572 | specialization in DECL_TI_TEMPLATE. | |
1573 | (partial_specialization_p, impartial_args): Remove. | |
1574 | (regenerate_decl_from_template): Add args parm. | |
1575 | (instantiate_decl): Look up the partial specialization again. | |
1576 | ||
f795360d JM |
1577 | PR c++/71227 |
1578 | * pt.c (check_explicit_specialization): Give better diagnostic about | |
1579 | specializing a hidden friend. | |
1580 | ||
c642d919 PC |
1581 | 2016-05-31 Paolo Carlini <paolo.carlini@oracle.com> |
1582 | ||
1583 | PR c++/71248 | |
1584 | * decl.c (check_static_variable_definition): Use DECL_SOURCE_LOCATION | |
1585 | to obtain correct locations; avoid redundant diagnostics on | |
1586 | out-of-class definitions. | |
1587 | ||
1588 | 2016-05-30 Martin Sebor <msebor@redhat.com> | |
265149a6 MS |
1589 | |
1590 | PR c++/71306 | |
1591 | * init.c (warn_placement_new_too_small): Handle placement new arguments | |
1592 | that are elements of arrays more carefully. Remove a pointless loop. | |
1593 | ||
00631022 JJ |
1594 | 2016-05-30 Jakub Jelinek <jakub@redhat.com> |
1595 | ||
1596 | PR c++/71349 | |
1597 | * parser.c (cp_parser_omp_for): Don't disallow nowait clause | |
1598 | when combined with target construct. | |
1599 | (cp_parser_omp_parallel): Pass cclauses == NULL as last argument | |
1600 | to cp_parser_omp_all_clauses. | |
1601 | ||
b2f6675b PC |
1602 | 2016-05-30 Paolo Carlini <paolo.carlini@oracle.com> |
1603 | ||
1604 | PR c++/71238 | |
1605 | * lex.c (unqualified_name_lookup_error): Take a location too. | |
1606 | (unqualified_fn_lookup_error): Take a cp_expr. | |
1607 | * cp-tree.h (unqualified_name_lookup_error, | |
1608 | unqualified_fn_lookup_error): Adjust declarations. | |
1609 | * semantics.c (perform_koenig_lookup): Adjust | |
1610 | unqualified_fn_lookup_error call, pass the location of | |
1611 | the identifier too as part of a cp_expr. | |
1612 | ||
a59775a1 PC |
1613 | 2016-05-30 Paolo Carlini <paolo.carlini@oracle.com> |
1614 | ||
1615 | PR c++/71099 | |
1616 | * parser.c (cp_parser_function_specifier_opt): Use current_class_type | |
1617 | to improve the diagnostic about wrong uses of 'virtual'. | |
1618 | ||
036dc0a0 PC |
1619 | 2016-05-29 Paolo Carlini <paolo.carlini@oracle.com> |
1620 | ||
1621 | PR c++/71105 | |
1622 | * lambda.c (maybe_add_lambda_conv_op): Early return also when | |
1623 | LAMBDA_EXPR_DEFAULT_CAPTURE_MODE != CPLD_NONE. | |
1624 | ||
c8419aca VV |
1625 | 2016-05-28 Ville Voutilainen <ville.voutilainen@gmail.com> |
1626 | ||
1627 | Revert: | |
1628 | PR c++/69855 | |
1629 | * name-lookup.c (pushdecl_maybe_friend_1): Push local function | |
1630 | decls into the global scope after stripping template bits | |
1631 | and setting DECL_ANTICIPATED. | |
1632 | ||
8008c4d2 PC |
1633 | 2016-05-27 Paolo Carlini <paolo.carlini@oracle.com> |
1634 | ||
1635 | PR c++/60385 | |
1636 | * name-lookup.c (push_namespace): Return bool, false when pushdecl | |
1637 | fails. | |
1638 | * name-lookup.h (push_namespace): Adjust declaration. | |
1639 | * parser.c (cp_parser_namespace_definition): Check push_namespace | |
1640 | return value. | |
1641 | ||
7d67159b VV |
1642 | 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com> |
1643 | ||
1644 | PR c++/69855 | |
1645 | * name-lookup.c (pushdecl_maybe_friend_1): Push local function | |
1646 | decls into the global scope after stripping template bits | |
1647 | and setting DECL_ANTICIPATED. | |
1648 | ||
7211a097 JJ |
1649 | 2016-05-26 Jakub Jelinek <jakub@redhat.com> |
1650 | ||
1651 | * semantics.c (finish_omp_clauses) <case OMP_CLAUSE_SCHEDULE>: Warn | |
1652 | if OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive. | |
1653 | ||
cac177cf PP |
1654 | 2016-05-26 Patrick Palka <ppalka@gcc.gnu.org> |
1655 | ||
1656 | PR c++/70822 | |
1657 | PR c++/70106 | |
1658 | * cp-tree.h (REF_PARENTHESIZED_P): Make this flag apply to | |
1659 | SCOPE_REFs too. | |
1660 | * pt.c (tsubst_qualified_id): If REF_PARENTHESIZED_P is set | |
1661 | on the qualified_id then propagate it to the resulting | |
1662 | expression. | |
1663 | (do_auto_deduction): Check REF_PARENTHESIZED_P on SCOPE_REFs | |
1664 | too. | |
1665 | * semantics.c (force_paren_expr): If given a SCOPE_REF, just set | |
1666 | its REF_PARENTHESIZED_P flag. | |
1667 | ||
1b22fc54 JM |
1668 | 2016-05-25 Jason Merrill <jason@redhat.com> |
1669 | ||
1670 | PR c++/71173 | |
1671 | PR c++/70522 | |
1672 | * cp-tree.h (enum tag_types): Add scope_type. | |
1673 | * parser.c (cp_parser_class_name): Use scope_type. | |
1674 | (prefer_type_arg): Handle scope_type. | |
1675 | (cp_parser_lookup_name): Use prefer_type_arg. | |
1676 | * name-lookup.c (lookup_qualified_name): Change bool is_type_p to | |
1677 | int prefer_type, use lookup_flags. | |
1678 | * name-lookup.h: Adjust. | |
1679 | ||
e46c7770 CP |
1680 | 2016-05-24 Cesar Philippidis <cesar@codesourcery.com> |
1681 | ||
1682 | * parser.c (cp_parser_oacc_declare): Add support for | |
1683 | GOMP_MAP_FIRSTPRIVATE_POINTER. | |
1684 | * semantics.c (handle_omp_array_sections_1): Replace bool is_omp | |
1685 | argument with enum c_omp_region_type ort. Don't privatize OpenACC | |
1686 | non-static members. | |
1687 | (handle_omp_array_sections): Replace bool is_omp argument with enum | |
1688 | c_omp_region_type ort. Update call to handle_omp_array_sections_1. | |
1689 | (finish_omp_clauses): Add specific errors and warning messages for | |
1690 | OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update | |
1691 | call to handle_omp_array_sections. | |
1692 | ||
66f90a17 JM |
1693 | 2016-05-24 Jason Merrill <jason@redhat.com> |
1694 | ||
1695 | PR c++/70584 | |
1696 | * cp-gimplify.c (cp_fold_maybe_rvalue): Loop in case cp_fold | |
1697 | returns a decl. | |
1698 | (cp_fold) [INDIRECT_REF]: Don't fold to an rvalue. | |
1699 | ||
f65e97fd MS |
1700 | 2016-05-24 Martin Sebor <msebor@redhat.com> |
1701 | ||
1702 | PR c++/71147 | |
1703 | * decl.c (layout_var_decl, grokdeclarator): Use complete_or_array_type_p. | |
1704 | * pt.c (instantiate_class_template_1): Try to complete the element | |
1705 | type of a flexible array member. | |
1706 | (can_complete_type_without_circularity): Handle arrays of unknown bound. | |
1707 | * typeck.c (complete_type): Also complete the type of the elements of | |
1708 | arrays with an unspecified bound. | |
1709 | ||
72f382fb PC |
1710 | 2016-05-24 Paolo Carlini <paolo.carlini@oracle.com> |
1711 | ||
1712 | PR c++/69872 | |
1713 | * typeck2.c (check_narrowing): Check pedwarn return value. | |
1714 | ||
7adb26f2 JJ |
1715 | 2016-05-24 Jakub Jelinek <jakub@redhat.com> |
1716 | ||
1717 | PR c++/71257 | |
1718 | * semantics.c (finish_omp_clauses) <case OMP_CLAUSE_LINEAR>: | |
1719 | For OMP_CLAUSE_LINEAR_REF don't require type to be | |
1720 | integral or pointer. | |
1721 | ||
f17a223d RB |
1722 | 2016-05-24 Richard Biener <rguenther@suse.de> |
1723 | ||
1724 | PR middle-end/70434 | |
1725 | PR c/69504 | |
1726 | * expr.c (mark_exp_read): Handle VIEW_CONVERT_EXPR. | |
1727 | * constexpr.c (cxx_eval_array_reference): Handle indexed | |
1728 | vectors. | |
1729 | * typeck.c (cp_build_array_ref): Adjust. | |
1730 | ||
9c62c1f3 JM |
1731 | 2016-05-23 Jason Merrill <jason@redhat.com> |
1732 | ||
4ddcdbf9 JM |
1733 | PR c++/70344 |
1734 | * constexpr.c (cxx_eval_call_expression): Check for | |
1735 | fun == current_function_decl again. | |
1736 | ||
290279c4 JM |
1737 | PR c++/70584 |
1738 | * cp-gimplify.c (cp_fold) [INDIRECT_REF]: Call | |
1739 | maybe_undo_parenthesized_ref. | |
1740 | ||
9c62c1f3 JM |
1741 | PR c++/70735 |
1742 | * pt.c (tsubst_copy): Just return a local variable from | |
1743 | non-template context. Don't call rest_of_decl_compilation for | |
1744 | duplicated static locals. | |
1745 | (tsubst_decl): Set DECL_CONTEXT of local static from another | |
1746 | function. | |
1747 | ||
26d6ae55 PC |
1748 | 2016-05-23 Paolo Carlini <paolo.carlini@oracle.com> |
1749 | ||
1750 | PR c++/70972 | |
1751 | * method.c (forward_parm): Use cp_build_reference_type. | |
1752 | ||
d6c9a06f PC |
1753 | 2016-05-23 Paolo Carlini <paolo.carlini@oracle.com> |
1754 | ||
1755 | PR c++/69095 | |
1756 | * parser.c (cp_parser_initializer): Use check_for_bare_parameter_packs. | |
1757 | ||
396a1d10 PC |
1758 | 2016-05-23 Paolo Carlini <paolo.carlini@oracle.com> |
1759 | ||
1760 | * pt.c (check_for_bare_parameter_packs): Improve error message | |
1761 | location for expressions. | |
1762 | ||
4727d4c6 NS |
1763 | 2016-05-20 Nathan Sidwell <nathan@acm.org> |
1764 | ||
1765 | * constexpr.c (cxx_bind_parameters_in_call): Avoid gratuitous if | |
1766 | ... goto. | |
1767 | (cxx_eval_call_expression): Fix comment grammar. | |
1768 | ||
ef98d365 PC |
1769 | 2016-05-20 Paolo Carlini <paolo.carlini@oracle.com> |
1770 | ||
1771 | PR c++/70572 | |
1772 | * decl.c (cp_finish_decl): Check do_auto_deduction return value | |
1773 | and return immediately in case of erroneous code. | |
1774 | ||
2a5569fa MP |
1775 | 2016-05-19 Marek Polacek <polacek@redhat.com> |
1776 | ||
1777 | PR c++/71075 | |
1778 | * pt.c (unify_template_argument_mismatch): Use %qE instead of %qD. | |
1779 | ||
a7dd5069 JM |
1780 | 2016-05-19 Jason Merrill <jason@redhat.com> |
1781 | ||
1782 | PR c++/10200 | |
1783 | * pt.c (fn_type_unification): Add outer template args if needed. | |
1784 | (type_unification_real): Handle getting full args. | |
1785 | ||
5e9a5385 DM |
1786 | 2016-05-19 David Malcolm <dmalcolm@redhat.com> |
1787 | ||
1788 | PR c++/71184 | |
1789 | * parser.c (cp_parser_operator): For array new/delete, check that | |
1790 | cp_parser_require returned a non-NULL token before dereferencing | |
1791 | it. | |
1792 | ||
4bf8dbe1 BE |
1793 | 2016-05-19 Bernd Edlinger <bernd.edlinger@hotmail.de> |
1794 | ||
1795 | * decl.c (finish_enum_value_list): Use the specified mode. | |
1796 | ||
8f74423d JM |
1797 | 2016-05-18 Jason Merrill <jason@redhat.com> |
1798 | ||
1799 | * pt.c (value_dependent_expression_p): Tweak new cases to better | |
1800 | match the wording in the standard. | |
1801 | ||
c584aca6 PC |
1802 | 2016-05-18 Paolo Carlini <paolo.carlini@oracle.com> |
1803 | ||
1804 | PR c++/69793 | |
1805 | * parser.c (cp_parser_template_id): Don't call cp_lexer_peek_nth_token | |
1806 | when the previous cp_lexer_peek_token returns CPP_EOF. | |
1807 | ||
20309c6e PC |
1808 | 2016-05-18 Paolo Carlini <paolo.carlini@oracle.com> |
1809 | ||
1810 | PR c++/70466 | |
1811 | * call.c (convert_like_real): Check that we are actually converting | |
1812 | from an init list. | |
1813 | ||
8fad45f5 MW |
1814 | 2016-05-16 Matthew Wahab <matthew.wahab@arm.com> |
1815 | ||
1816 | * decl.c (grokdeclarator): Remove errmsg and use of | |
1817 | targetm.invalid_return_type. | |
1818 | (grokparms): Remove errmsg and use of | |
1819 | targetm.invalid_parameter_type. | |
1820 | ||
827e5d3f JM |
1821 | 2016-05-13 Jason Merrill <jason@redhat.com> |
1822 | ||
23cb7266 JM |
1823 | PR c++/10200 |
1824 | PR c++/69753 | |
1825 | * pt.c (tsubst_decl): Use uses_template_parms. | |
1826 | (instantiate_template_1): Handle non-dependent calls in templates. | |
1827 | (value_dependent_expression_p): Handle BASELINK, FUNCTION_DECL. | |
1828 | (type_dependent_expression_p): Only consider innermost template args. | |
1829 | (dependent_template_arg_p): Check enclosing class of a template here. | |
1830 | (dependent_template_p): Not here. | |
1831 | (type_dependent_object_expression_p): New. | |
1832 | * typeck.c (finish_class_member_access_expr): Use it. | |
1833 | * parser.c (cp_parser_postfix_expression): Use it. | |
1834 | (cp_parser_postfix_dot_deref_expression): Use it. Use comptypes | |
1835 | to detect the current instantiation. | |
1836 | (cp_parser_lookup_name): Really implement DR 141. | |
1837 | * search.c (lookup_field_r): Prefer a dependent using-declaration. | |
1838 | (any_dependent_bases_p): Split out from... | |
1839 | * name-lookup.c (do_class_using_decl): ...here. | |
1840 | * call.c (build_new_method_call_1): Use it. | |
1841 | * semantics.c (finish_call_expr): 'this' doesn't make a call dependent. | |
1842 | * tree.c (non_static_member_function_p): Remove. | |
1843 | * typeck2.c (build_x_arrow): Use dependent_scope_p. | |
1844 | ||
827e5d3f JM |
1845 | * parser.c (cp_parser_postfix_dot_deref_expression): Use |
1846 | complete_type_or_else for unknown_type_node, too. | |
1847 | ||
4f2e1536 MP |
1848 | 2016-05-12 Marek Polacek <polacek@redhat.com> |
1849 | ||
1850 | PR c/70756 | |
1851 | * call.c (build_new_op_1): Pass LOC to cp_build_modify_expr. | |
1852 | * cp-tree.h (cp_build_modify_expr): Update declaration. | |
1853 | (cxx_incomplete_type_error, cxx_incomplete_type_diagnostic): New inline | |
1854 | overloads. | |
1855 | * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Pass INPUT_LOCATION to | |
1856 | cp_build_modify_expr. | |
1857 | * decl2.c (set_guard): Likewise. | |
1858 | (handle_tls_init): Likewise. | |
1859 | * init.c (perform_member_init): Likewise. | |
1860 | (expand_virtual_init): Likewise. | |
1861 | (build_new_1): Likewise. | |
1862 | (build_vec_delete_1): Likewise. | |
1863 | (get_temp_regvar): Likewise. | |
1864 | (build_vec_init): Likewise. | |
1865 | * method.c (do_build_copy_assign): Likewise. | |
1866 | (assignable_expr): Likewise. | |
1867 | * semantics.c (finish_omp_for): Likewise. | |
1868 | * typeck.c (cp_build_binary_op): Pass LOCATION to pointer_diff and | |
1869 | cp_pointer_int_sum. | |
1870 | (cp_pointer_int_sum): Add location parameter. Pass it down to | |
1871 | pointer_int_sum. | |
1872 | (pointer_diff): Add location parameter. Use it. | |
1873 | (build_modify_expr): Pass location down to cp_build_modify_expr. | |
1874 | (cp_build_modify_expr): Add location parameter. Use it. | |
1875 | (build_x_modify_expr): Pass location down to cp_build_modify_expr. | |
1876 | * typeck2.c (cxx_incomplete_type_diagnostic, | |
1877 | cxx_incomplete_type_error): Add location parameter. | |
1878 | ||
5c3a10fb MP |
1879 | 2016-05-11 Marek Polacek <polacek@redhat.com> |
1880 | ||
1881 | PR c++/71024 | |
1882 | * decl.c (duplicate_decls): Call diagnose_mismatched_decls. | |
1883 | ||
351f85c5 JJ |
1884 | 2016-05-05 Jakub Jelinek <jakub@redhat.com> |
1885 | ||
1886 | * parser.c (cp_parser_selection_statement): For RID_SWITCH, | |
1887 | pass if_p instead of NULL to cp_parser_implicitly_scoped_statement. | |
1888 | ||
deef7113 MP |
1889 | 2016-05-04 Marek Polacek <polacek@redhat.com> |
1890 | ||
1891 | * parser.c (cp_parser_selection_statement): Replace OPT_Wparentheses | |
1892 | with OPT_Wdangling_else. | |
1893 | ||
b25aad5f MS |
1894 | 2016-05-03 Martin Sebor <msebor@redhat.com> |
1895 | ||
1896 | PR c++/66561 | |
1897 | * tree.c (builtin_valid_in_constant_expr_p): Treat BUILT_IN_FILE, | |
1898 | BUILT_IN_FUNCTION, and BUILT_IN_LINE as constant expressions. | |
1899 | ||
79ce98bc MP |
1900 | 2016-05-03 Marek Polacek <polacek@redhat.com> |
1901 | ||
1902 | PR c/70859 | |
1903 | * call.c (build_cxx_call): Pass location and vNULL down to | |
1904 | check_builtin_function_arguments. | |
1905 | ||
fb2647aa RB |
1906 | 2016-05-03 Richard Biener <rguenther@suse.de> |
1907 | ||
1908 | * Make-lang.in (cc1plus-checksum.c): For stage-final re-use | |
1909 | the checksum from the previous stage. | |
1910 | ||
bc1aee87 DM |
1911 | 2016-05-02 David Malcolm <dmalcolm@redhat.com> |
1912 | ||
1913 | PR c++/62314 | |
1914 | * typeck.c (finish_class_member_access_expr): When | |
1915 | giving a hint about a possibly-misspelled member name, | |
1916 | add a fix-it replacement hint. | |
1917 | ||
77886428 CP |
1918 | 2016-05-02 Cesar Philippidis <cesar@codesourcery.com> |
1919 | ||
1920 | * cp-tree.h (finish_omp_clauses): Update prototype. | |
1921 | * parser.c (cp_parser_oacc_all_clauses): Update call to | |
1922 | finish_omp_clauses. | |
1923 | (cp_parser_omp_all_clauses): Likewise. | |
1924 | (cp_parser_omp_for_loop): Likewise. | |
1925 | (cp_omp_split_clauses): Likewise. | |
1926 | (cp_parser_oacc_cache): Likewise. | |
1927 | (cp_parser_oacc_loop): Likewise. | |
1928 | (cp_parser_omp_declare_target): | |
1929 | (cp_parser_cilk_simd_all_clauses): Likewise. | |
1930 | (cp_parser_cilk_for): Likewise. | |
1931 | * pt.c (tsubst_omp_clauses): Replace allow_fields and declare_simd | |
1932 | arguments with enum c_omp_region_type ort. | |
1933 | (tsubst_omp_clauses): Update calls to finish_omp_clauses. | |
1934 | (tsubst_omp_attribute): Update calls to tsubst_omp_clauses. | |
1935 | (tsubst_omp_for_iterator): Update calls to finish_omp_clauses. | |
1936 | (tsubst_expr): Update calls to tsubst_omp_clauses. | |
1937 | * semantics.c (finish_omp_clauses): Replace bool arguments | |
1938 | allow_fields, declare_simd, and is_cilk with bitmask ort. | |
1939 | (finish_omp_for): Update call to finish_omp_clauses. | |
1940 | ||
474e0129 DM |
1941 | 2016-05-02 David Malcolm <dmalcolm@redhat.com> |
1942 | ||
1943 | PR c++/62314 | |
1944 | * parser.c (cp_parser_class_head): Capture the start location; | |
1945 | use it to emit a fix-it insertion hint when complaining | |
1946 | about missing "template <> " in explicit specializations. | |
1947 | ||
8de73453 RS |
1948 | 2016-05-02 Richard Sandiford <richard.sandiford@arm.com> |
1949 | ||
1950 | * init.c (build_new_1): Use shift operators instead of wi:: shifts. | |
1951 | ||
02673c66 RB |
1952 | 2016-05-02 Richard Biener <rguenther@suse.de> |
1953 | ||
1954 | * decl.c (grokdeclarator): Properly insert a DECL_EXPR for | |
1955 | anonymous VLAs. | |
1956 | ||
411e5c67 PC |
1957 | 2016-04-29 Paolo Carlini <paolo.carlini@oracle.com> |
1958 | ||
1959 | PR c++/66644 | |
1960 | * class.c (check_field_decl): Remove final int* parameter, change | |
1961 | the return type to bool; fix logic in order not to reject multiple | |
1962 | initialized fields in anonymous struct. | |
1963 | (check_field_decls): Adjust call. | |
1964 | ||
e7ff0319 CP |
1965 | 2016-04-29 Cesar Philippidis <cesar@codesourcery.com> |
1966 | ||
1967 | PR middle-end/70626 | |
1968 | * parser.c (cp_parser_oacc_loop): Don't augment mask with | |
1969 | OACC_LOOP_CLAUSE_MASK. | |
1970 | (cp_parser_oacc_kernels_parallel): Update call to | |
1971 | c_oacc_split_loop_clauses. | |
1972 | ||
babaa9df JM |
1973 | 2016-04-28 Jason Merrill <jason@redhat.com> |
1974 | ||
b632761d JM |
1975 | Implement C++17 [[nodiscard]] attribute. |
1976 | PR c++/38172 | |
1977 | PR c++/54379 | |
1978 | * parser.c (cp_parser_std_attribute): Handle [[nodiscard]]. | |
1979 | * tree.c (handle_nodiscard_attribute): New. | |
1980 | (cxx_attribute_table): Add [[nodiscard]]. | |
1981 | * cvt.c (cp_get_fndecl_from_callee, cp_get_callee_fndecl): New. | |
1982 | (maybe_warn_nodiscard): New. | |
1983 | (convert_to_void): Call it. | |
1984 | ||
babaa9df JM |
1985 | * cvt.c (cp_get_callee): New. |
1986 | * constexpr.c (get_function_named_in_call): Use it. | |
1987 | * cxx-pretty-print.c (postfix_expression): Use it. | |
1988 | * except.c (check_noexcept_r): Use it. | |
1989 | * method.c (check_nontriv): Use it. | |
1990 | * tree.c (build_aggr_init_expr): Use it. | |
1991 | * cp-tree.h: Declare it. | |
1992 | ||
6bc2bb18 RB |
1993 | 2015-04-27 Ryan Burn <contact@rnburn.com> |
1994 | Jeff Law <law@redhat.com> | |
1995 | ||
1996 | PR c++/69024 | |
1997 | PR c++/68997 | |
1998 | * cp-gimplify.c (cp_gimplify_expr): Call cilk_cp_detect_spawn_and_unwrap | |
1999 | instead of cilk_detect_spawn_and_unwrap. | |
2000 | * cp-cilkplus.c (is_conversion_operator_function_decl_p): New. | |
2001 | (find_spawn): New. | |
2002 | (cilk_cp_detect_spawn_and_unwrap): New. | |
2003 | * lambda.c: Include cp-cilkplus.h. | |
2004 | * parser.c: Include cp-cilkplus.h. | |
2005 | * cp-tree.h (cpp_validate_cilk_plus_loop): Move prototype into... | |
2006 | * cp-cilkpus.h: New file. | |
2007 | ||
3c98ff9b NS |
2008 | 2016-04-27 Nathan Sidwell <nathan@acm.org> |
2009 | ||
2010 | * constexpr.c (get_fundef_copy): Use the original function for | |
2011 | non-recursive evaluations. | |
2012 | (save_fundef_copy): Always expect a slot to be available. | |
2013 | ||
c1e1f433 BS |
2014 | 2016-04-27 Bernd Schmidt <bschmidt@redhat.com> |
2015 | ||
2016 | * parser.c (cp_parser_postfix_expression): Call | |
2017 | warn_for_memset instead of warning directly here. | |
2018 | ||
843ce8ab PP |
2019 | 2016-04-26 Patrick Palka <ppalka@gcc.gnu.org> |
2020 | ||
2021 | PR c++/70241 | |
2022 | * decl.c (build_enumerator): Set current_access_specifier when | |
2023 | declaring an enumerator belonging to an in-class enumeration. | |
2024 | * parser.c (cp_parser_check_access_in_redecleration): Also | |
2025 | consider in-class enumerations. | |
2026 | ||
5a0802ea MP |
2027 | 2016-04-26 Marek Polacek <polacek@redhat.com> |
2028 | ||
2029 | PR c++/70744 | |
2030 | * call.c (build_conditional_expr_1): Call cp_stabilize_reference | |
2031 | instead of stabilize_reference. | |
2032 | (build_over_call): Likewise. | |
2033 | * cp-tree.h (cp_stabilize_reference): Declare. | |
2034 | * tree.c (cp_stabilize_reference): New function. | |
2035 | * typeck.c (cp_build_unary_op): Call cp_stabilize_reference instead of | |
2036 | stabilize_reference. | |
2037 | (unary_complex_lvalue): Likewise. | |
2038 | (cp_build_modify_expr): Likewise. | |
2039 | ||
7db11a5a JJ |
2040 | 2016-04-26 Jakub Jelinek <jakub@redhat.com> |
2041 | ||
2042 | PR bootstrap/70704 | |
2043 | * pt.c (build_non_dependent_expr): Use flag_checking > 1 instead of | |
2044 | just flag_checking. | |
2045 | ||
d067e05f JM |
2046 | 2016-04-25 Jason Merrill <jason@redhat.com> |
2047 | ||
2048 | * tree.c (std_attribute_table): New. | |
2049 | (init_tree): Register it. | |
2050 | ||
76f9244e JM |
2051 | 2016-04-22 Jason Merrill <jason@redhat.com> |
2052 | ||
2053 | * parser.c (cp_parser_perform_range_for_lookup): Decay the array. | |
2054 | ||
5c712250 PP |
2055 | 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org> |
2056 | ||
2057 | * name-lookup.c (free_saved_scope): New free list of saved_scope | |
2058 | structures. | |
2059 | (push_to_top_level): Attempt to reuse a saved_scope struct | |
2060 | from free_saved_scope instead of allocating a new one each time. | |
2061 | (pop_from_top_level_1): Chain the now-unused saved_scope structure | |
2062 | onto free_saved_scope. | |
2063 | ||
20700098 PC |
2064 | 2016-04-21 Paolo Carlini <paolo.carlini@oracle.com> |
2065 | ||
2066 | PR c++/70540 | |
2067 | * semantics.c (process_outer_var_ref): Unconditionally return | |
2068 | error_mark_node when mark_used returns false. | |
2069 | ||
aedf4e12 MP |
2070 | 2016-04-21 Marek Polacek <polacek@redhat.com> |
2071 | ||
2072 | PR c++/70513 | |
2073 | * parser.c (cp_parser_enum_specifier): Check and possibly error for | |
2074 | extra qualification. | |
2075 | ||
ee392fc2 NS |
2076 | 2016-04-20 Nathan Sidwell <nathan@acm.org> |
2077 | ||
2078 | PR c++/55635 | |
2079 | * init.c (build_vec_delete_1): Protect operator delete call in try | |
2080 | finally. | |
2081 | (build_delete): Likewise. | |
2082 | * optimize.c (build_delete_destructor_body): Likewise. | |
2083 | ||
477d4906 IV |
2084 | 2016-04-20 Ilya Verbin <ilya.verbin@intel.com> |
2085 | ||
2086 | PR c++/69363 | |
2087 | * cp-tree.h (finish_omp_clauses): Add new default argument. | |
2088 | * parser.c (cp_parser_cilk_simd_all_clauses): Use finish_omp_clauses | |
2089 | instead of c_finish_cilk_clauses. | |
2090 | * semantics.c (finish_omp_clauses): Add new argument. Allow | |
2091 | floating-point variables in the linear clause for Cilk Plus. | |
2092 | ||
323af7cf NS |
2093 | 2016-04-20 Nathan Sidwell <nathan@acm.org> |
2094 | ||
2095 | * semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a | |
2096 | TARGET_EXPR. | |
2097 | ||
3ba065e8 JM |
2098 | 2016-04-19 Jason Merrill <jason@redhat.com> |
2099 | ||
76f39440 JM |
2100 | PR c++/66543 |
2101 | * expr.c (mark_exp_read): Handle NON_DEPENDENT_EXPR. | |
2102 | * pt.c (make_pack_expansion): Call mark_exp_read. | |
2103 | * semantics.c (finish_id_expression): Call mark_type_use in | |
2104 | unevaluated context. | |
2105 | ||
218e9dde JM |
2106 | DR 2137 |
2107 | * call.c (implicit_conversion): If we choose a copy constructor | |
2108 | for list-initialization from the same type, the conversion is an | |
2109 | exact match. | |
2110 | ||
06ec22b7 JM |
2111 | * constexpr.c (breaks): Handle EXIT_EXPR. |
2112 | (cxx_eval_loop_expr): Handle COMPOUND_EXPR body. | |
2113 | (cxx_eval_constant_expression): Handle EXIT_EXPR, improve handling | |
2114 | of COMPOUND_EXPR. | |
2115 | ||
f937929e JM |
2116 | PR c++/68206 |
2117 | PR c++/68530 | |
2118 | * constexpr.c (potential_constant_expression_1): Handle LOOP_EXPR | |
2119 | and GOTO_EXPR. | |
2120 | ||
b1e47084 JM |
2121 | * pt.c (tsubst_expr): Remove shadowing declaration. |
2122 | (tsubst_pack_expansion): Add assert. | |
2123 | ||
2124 | * semantics.c (add_decl_expr): Use DECL_SOURCE_LOCATION. | |
2125 | ||
3ba065e8 JM |
2126 | PR c++/70522 |
2127 | * name-lookup.c (qualified_lookup_using_namespace): Look through | |
2128 | hidden names. | |
2129 | ||
fe37c7af MM |
2130 | 2016-04-18 Michael Matz <matz@suse.de> |
2131 | ||
2132 | * class.c (build_vtable): Use SET_DECL_ALIGN and SET_TYPE_ALIGN. | |
2133 | (layout_class_type): Ditto. | |
2134 | (build_base_field): Use SET_DECL_ALIGN. | |
2135 | (fixup_attribute_variants): Use SET_TYPE_ALIGN. | |
2136 | * decl.c (duplicate_decls): Use SET_DECL_ALIGN. | |
2137 | (record_unknown_type): Use SET_TYPE_ALIGN. | |
2138 | (cxx_init_decl_processing): Ditto. | |
2139 | (copy_type_enum): Ditto. | |
2140 | (grokfndecl): Use SET_DECL_ALIGN. | |
2141 | (copy_type_enum): Use SET_TYPE_ALIGN. | |
2142 | * pt.c (instantiate_class_template_1): Use SET_TYPE_ALIGN. | |
2143 | (tsubst): Ditto. | |
2144 | * tree.c (cp_build_qualified_type_real): Use SET_TYPE_ALIGN. | |
2145 | * lambda.c (maybe_add_lambda_conv_op): Use SET_DECL_ALIGN. | |
2146 | * method.c (implicitly_declare_fn): Use SET_DECL_ALIGN. | |
2147 | * rtti.c (emit_tinfo_decl): Ditto. | |
2148 | ||
81c160c6 JM |
2149 | 2016-04-18 Jason Merrill <jason@redhat.com> |
2150 | ||
2151 | PR c++/70690 | |
2152 | PR c++/70528 | |
2153 | * class.c (type_maybe_constexpr_default_constructor): New. | |
2154 | (type_has_constexpr_default_constructor): Revert. | |
2155 | ||
a4186552 SL |
2156 | 2016-04-16 Sandra Loosemore <sandra@codesourcery.com> |
2157 | ||
2158 | PR target/1078 | |
2159 | ||
2160 | * tree.c (cxx_attribute_table): Remove "com_interface" entry. | |
2161 | (handle_com_interface_attribute): Delete. | |
2162 | ||
a7b12f1f JM |
2163 | 2016-04-15 Jason Merrill <jason@redhat.com> |
2164 | ||
3d8dfcb4 JM |
2165 | PR c++/70685 |
2166 | * constexpr.c (get_fundef_copy): Handle null *slot. | |
2167 | ||
a7b12f1f JM |
2168 | PR c++/70505 |
2169 | * pt.c (tsubst_baselink): Give the new TEMPLATE_ID_EXPR | |
2170 | unknown_type_node, too. | |
2171 | ||
70f4fdeb JJ |
2172 | 2016-04-15 Jason Merrill <jason@redhat.com> |
2173 | Nathan Sidwell <nathan@acm.org> | |
2174 | ||
2175 | PR c++/70594 | |
2176 | * constexpr.c (constexpr_call_table): Preserve in GC. | |
2177 | (struct fundef_copy, struct fundef_copies_table_t): Delete. | |
2178 | (fundef_copies_table): Preserve in GC. Change to pointer to | |
2179 | tree->tree hash. | |
2180 | (maybe_initialize_fundef_copies_table): Adjust. | |
2181 | (get_fundef_copy): Return a TREE_LIST. Use non-inserting search. | |
2182 | (save_fundef_copy): Adjust for a TREE_LIST. | |
2183 | (cxx_eval_call_expression): Adjust for a fundef_copy TREE_LIST. | |
2184 | (fini_constexpr): New. | |
2185 | * cp-tree.h (fini_constexpr): Declare. | |
2186 | * decl2.c (c_parse_final_cleanups): Call fini_constexpr. | |
2187 | ||
dda1bf61 JJ |
2188 | 2016-04-15 Jakub Jelinek <jakub@redhat.com> |
2189 | ||
2190 | PR c/70436 | |
2191 | * parser.c (cp_parser_pragma): Add IF_P argument, pass it down | |
2192 | where needed. | |
2193 | (cp_parser_declaration_seq_opt, cp_parser_member_specification_opt, | |
2194 | cp_parser_objc_interstitial_code, cp_parser_omp_declare_simd, | |
2195 | cp_parser_oacc_routine): Adjust cp_parser_pragma callers. | |
2196 | (cp_parser_statement): Likewise. Adjust cp_parser_cilk_for caller. | |
2197 | (cp_parser_omp_structured_block): Add IF_P argument, pass it down to | |
2198 | cp_parser_statement. | |
2199 | (cp_parser_oacc_data, cp_parser_oacc_host_data, cp_parser_oacc_loop, | |
2200 | cp_parser_oacc_kernels_parallel, cp_parser_omp_critical, | |
2201 | cp_parser_omp_simd, cp_parser_omp_for, cp_parser_omp_master, | |
2202 | cp_parser_omp_ordered, cp_parser_omp_parallel, cp_parser_omp_single, | |
2203 | cp_parser_omp_task, cp_parser_omp_taskgroup, cp_parser_omp_distribute, | |
2204 | cp_parser_omp_teams, cp_parser_omp_target_data, cp_parser_omp_target, | |
2205 | cp_parser_omp_taskloop, cp_parser_omp_construct, | |
2206 | cp_parser_cilk_grainsize, cp_parser_cilk_simd, cp_parser_cilk_for): | |
2207 | Add IF_P argument, pass it down where needed. | |
2208 | (cp_parser_omp_for_loop): Likewise. Clear IF_P if nbraces. | |
2209 | (cp_parser_omp_sections_scope): Adjust cp_parser_omp_structured_block | |
2210 | calls. | |
2211 | ||
3ae9a8b7 JM |
2212 | 2016-04-14 Jason Merrill <jason@redhat.com> |
2213 | ||
8e718ecb JM |
2214 | PR c++/70494 |
2215 | * decl.c (cxx_maybe_build_cleanup): Handle non-decls. | |
2216 | * typeck2.c (split_nonconstant_init_1): Use it. | |
2217 | ||
26144dde JM |
2218 | PR c++/70528 |
2219 | * class.c (type_has_constexpr_default_constructor): Return true | |
2220 | for an implicitly declared constructor. | |
2221 | ||
65bddf28 JM |
2222 | PR c++/70622 |
2223 | * parser.c (cp_parser_init_declarator): Add auto_result parm. | |
2224 | (cp_parser_simple_declaration): Pass it. | |
2225 | (strip_declarator_types): New. | |
2226 | ||
d25a101f JM |
2227 | PR c++/70543 |
2228 | * pt.c (value_dependent_expression_p) [VAR_DECL]: A type-dependent | |
2229 | initializer also makes the variable value-dependent. | |
2230 | ||
3ae9a8b7 JM |
2231 | PR c++/70648 |
2232 | * constexpr.c (cxx_eval_store_expression): Also copy | |
2233 | CONSTRUCTOR_NO_IMPLICIT_ZERO. | |
2234 | ||
d8747845 MS |
2235 | 2016-04-14 Martin Sebor <msebor@redhat.com> |
2236 | ||
2237 | PR c++/69517 | |
2238 | PR c++/70019 | |
2239 | PR c++/70588 | |
2240 | * cp-tree.h, decl.c, init.c, typeck2.c: Revert. | |
2241 | ||
9f285ccb JM |
2242 | 2016-04-14 Jason Merrill <jason@redhat.com> |
2243 | ||
2244 | * call.c, decl.c, error.c, cp-tree.h, decl.c: Revert empty | |
2245 | parameter ABI change. | |
2246 | ||
342fac95 MS |
2247 | 2016-04-13 Martin Sebor <msebor@redhat.com> |
2248 | ||
2249 | PR c++/69517 | |
2250 | PR c++/70019 | |
2251 | PR c++/70588 | |
2252 | * cp-tree.h (throw_bad_array_length, build_vla_check): Declare new | |
2253 | functions. | |
2254 | * decl.c (check_initializer, cp_finish_decl): Call them. | |
2255 | (reshape_init_r): Reject incompletely braced intializer-lists | |
2256 | for VLAs. | |
2257 | * init.c (throw_bad_array_length, build_vla_check) | |
2258 | (build_vla_size_check, build_vla_init_check): Define new functions. | |
2259 | * typeck2.c (split_nonconstant_init_1): Use variably_modified_type_p() | |
2260 | to detect a VLA. | |
2261 | (store_init_value): Same. | |
2262 | ||
5655267c JM |
2263 | 2016-04-13 Jason Merrill <jason@redhat.com> |
2264 | ||
2ee35bea JM |
2265 | Warn about empty parameter ABI with -Wabi=9. |
2266 | * call.c (empty_class_msg, mark_for_abi_warning) | |
2267 | (warn_empty_class_abi): New. | |
2268 | (build_call_a): Use them. | |
2269 | * decl.c (store_parm_decls): Use mark_for_abi_warning. | |
2270 | * error.c (pp_format_to_string): New. | |
2271 | ||
5655267c JM |
2272 | Pass empty class parameters like C. |
2273 | * call.c (pass_as_empty_struct, empty_class_arg): New. | |
2274 | (type_passed_as, build_x_va_arg): Use pass_as_empty_struct. | |
2275 | (build_call_a): Use empty_class_arg. | |
2276 | * cp-tree.h (CPTI_EMPTY_STRUCT, empty_struct_type): New. | |
2277 | * decl.c (cxx_init_decl_processing): Create empty_struct_type. | |
2278 | ||
0d9cdbdd JM |
2279 | 2016-04-13 Jason Merrill <jason@redhat.com> |
2280 | ||
2281 | PR c++/70627 | |
2282 | * decl.c (start_enum): Don't change an existing ENUM_UNDERLYING_TYPE. | |
2283 | ||
545a4139 PC |
2284 | 2016-04-13 Paolo Carlini <paolo.carlini@oracle.com> |
2285 | ||
2286 | PR c++/70635 | |
2287 | * pt.c (resolve_typename_type): Fix typos in infinite recursion | |
2288 | avoidance mechanism. | |
2289 | ||
eb07f187 JM |
2290 | 2016-04-13 Jason Merrill <jason@redhat.com> |
2291 | ||
463d91c6 JM |
2292 | PR c++/70634 |
2293 | * pt.c (instantiation_dependent_uneval_expression_p): Split out | |
2294 | from instantiation_dependent_expression_p. | |
2295 | (value_dependent_expression_p): Use it for unevaluated operands. | |
2296 | (instantiation_dependent_r): Don't check value-dependence. | |
2297 | (instantiation_dependent_expression_p): Check | |
2298 | value-dependence of the expression as a whole. | |
2299 | * cp-tree.h: Declare instantiation_dependent_uneval_expression_p. | |
2300 | * semantics.c (finish_decltype_type): Use it. | |
2301 | ||
eb07f187 JM |
2302 | * constexpr.c (potential_nondependent_constant_expression): New. |
2303 | (potential_nondependent_static_init_expression): New. | |
2304 | (maybe_constant_value_1, fold_non_dependent_expr) | |
2305 | (maybe_constant_init): Use them. | |
2306 | * pt.c (instantiate_non_dependent_expr_sfinae) | |
2307 | (instantiate_non_dependent_or_null, convert_nontype_argument): Use | |
2308 | them. | |
2309 | * cp-tree.h: Declare them. | |
2310 | ||
3eddc1c9 JJ |
2311 | 2016-04-13 Jakub Jelinek <jakub@redhat.com> |
2312 | ||
2313 | PR c++/70594 | |
2314 | * decl.c (pop_labels_1): Removed. | |
2315 | (note_label, sort_labels): New functions. | |
2316 | (pop_labels): During named_labels traversal, just push the slot | |
2317 | pointers into a vector, then qsort it by DECL_UID and only then | |
2318 | call pop_label and chain it into BLOCK_VARS. | |
2319 | ||
9d409934 JM |
2320 | 2016-04-13 Jason Merrill <jason@redhat.com> |
2321 | ||
2322 | PR c++/70615 | |
2323 | * cp-gimplify.c (cp_genericize_r): Expand PTRMEM_CST here. | |
2324 | (cp_gimplify_expr): Not here. | |
2325 | ||
92886d3e PP |
2326 | 2016-04-12 Patrick Palka <ppalka@gcc.gnu.org> |
2327 | ||
2328 | PR c++/70610 | |
2329 | * tree.c (lvalue_kind) [NON_DEPENDENT_EXPR]: Unconditionally | |
2330 | recurse into it. | |
2331 | * typeck.c (build_x_conditional_expr): Unconditionally remember | |
2332 | that the result is an lvalue or xvalue. | |
2333 | ||
08d6d8bb JM |
2334 | 2016-04-12 Jason Merrill <jason@redhat.com> |
2335 | ||
2336 | * class.c (is_really_empty_class): A zero-length array is empty. | |
2337 | An unnamed bit-field doesn't make a class non-empty. | |
2338 | ||
2b2f52bc PC |
2339 | 2016-04-12 Paolo Carlini <paolo.carlini@oracle.com> |
2340 | ||
2341 | PR c++/68722 | |
2342 | * parser.c (cp_parser_cache_defarg): When file ends in default | |
2343 | argument simply return error_mark_node. | |
2344 | ||
d4619dc1 NS |
2345 | 2016-04-12 Nathan Sidwell <nathan@acm.org> |
2346 | ||
2347 | PR c++/70501 | |
2348 | * constexpr.c (cxx_eval_bare_aggregate): Handle VECTOR_TYPE | |
2349 | similarly to PMF. | |
2350 | ||
a9c2f3d9 JM |
2351 | 2016-04-11 Jason Merrill <jason@redhat.com> |
2352 | ||
2353 | * mangle.c (decl_is_template_id): The template itself counts as a | |
2354 | template-id. | |
2355 | ||
56cfb596 PP |
2356 | 2016-04-08 Patrick Palka <ppalka@gcc.gnu.org> |
2357 | ||
2358 | PR c++/70590 | |
2359 | PR c++/70452 | |
2360 | * constexpr.c (cxx_eval_outermost_expression): Call unshare_expr | |
2361 | on the result if it's not a CONSTRUCTOR. | |
2362 | ||
0146e25f PP |
2363 | 2016-04-07 Patrick Palka <ppalka@gcc.gnu.org> |
2364 | ||
2365 | PR c++/70452 | |
2366 | * constexpr.c (find_constructor): New function. | |
2367 | (unshare_constructor): New function. | |
2368 | (cxx_eval_call_expression): Use unshare_constructor instead of | |
2369 | unshare_expr. | |
2370 | (find_array_ctor_elt): Likewise. | |
2371 | (cxx_eval_vec_init_1): Likewise. | |
2372 | (cxx_eval_store_expression): Likewise. | |
2373 | (cxx_eval_constant_expression): Likewise. | |
2374 | ||
6b37bdaf PP |
2375 | 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org> |
2376 | ||
2377 | PR c/70436 | |
2378 | * cp-tree.h (FOR_EACH_CLONE): Restructure macro to avoid | |
2379 | potentially generating a future -Wparentheses warning in its | |
2380 | callers. | |
2381 | ||
469abfd2 JM |
2382 | 2016-04-06 Jason Merrill <jason@redhat.com> |
2383 | ||
2384 | * class.c (check_abi_tags): Fix function template handling. | |
2385 | ||
c08d28ac NS |
2386 | 2016-04-05 Nathan Sidwell <nathan@acm.org> |
2387 | ||
2388 | PR c++/70512 | |
2389 | * class.c (fixup_may_alias): New. | |
2390 | (fixup_attribute_variants): Call it. | |
2391 | ||
c0daf32d PP |
2392 | 2016-04-05 Patrick Palka <ppalka@gcc.gnu.org> |
2393 | ||
2394 | PR c++/70452 | |
2395 | * constexpr.c (struct fundef_copy): New struct. | |
2396 | (struct fundef_copies_table_t): New struct. | |
2397 | (fundef_copies_table): New static variable. | |
2398 | (maybe_initialize_fundef_copies_table): New static function. | |
2399 | (get_fundef_copy): New static function. | |
2400 | (save_fundef_copy): New static function. | |
2401 | (cxx_eval_call_expression): Use get_fundef_copy, and | |
2402 | save_fundef_copy. | |
2403 | (constexpr_call_table): Add "deletable" GTY marker. | |
2404 | ||
7a7ac32a PP |
2405 | 2016-04-05 Patrick Palka <ppalka@gcc.gnu.org> |
2406 | ||
2407 | PR c++/70452 | |
2408 | * cp-tree.h (class cache_map): Remove. | |
2409 | * constexpr.c (cv_cache): Change type to | |
2410 | GTY((deletable)) hash_map<tree, tree> *. | |
2411 | (maybe_constant_value): Adjust following the change to cv_cache. | |
2412 | (clear_cv_cache): New static function. | |
2413 | (clear_cv_and_fold_caches): Use it. | |
2414 | * cp-gimplify.c (fold_cache): Change type to | |
2415 | GTY((deletable)) hash_map<tree, tree> *. | |
2416 | (clear_fold_cache): Adjust following the change to fold_cache. | |
2417 | (cp_fold): Likewise. | |
2418 | ||
abdc16c8 MS |
2419 | 2016-04-02 Martin Sebor <msebor@redhat.com> |
2420 | ||
2421 | PR c++/67376 | |
2422 | PR c++/70170 | |
2423 | PR c++/70172 | |
2424 | PR c++/70228 | |
2425 | * constexpr.c (diag_array_subscript): New function. | |
2426 | (cxx_eval_array_reference): Detect out of bounds array indices. | |
2427 | ||
ddd6d421 JM |
2428 | 2016-04-01 Jason Merrill <jason@redhat.com> |
2429 | ||
2430 | PR c++/70449 | |
2431 | PR c++/70344 | |
2432 | * pt.c (instantiate_decl): A function isn't fully defined if | |
2433 | DECL_INITIAL is error_mark_node. | |
2434 | * constexpr.c (cxx_eval_call_expression): Likewise. | |
2435 | ||
0f875435 JJ |
2436 | 2016-04-01 Jakub Jelinek <jakub@redhat.com> |
2437 | Marek Polacek <polacek@redhat.com> | |
2438 | ||
2439 | PR c++/70488 | |
2440 | * init.c (warn_placement_new_too_small): Test whether | |
2441 | DECL_SIZE_UNIT or TYPE_SIZE_UNIT are integers that fit into uhwi. | |
2442 | ||
f9bf89bb NS |
2443 | 2016-04-01 Nathan Sidwell <nathan@acm.org> |
2444 | ||
2445 | PR c++/68475 | |
2446 | * decl.c (check_redeclaration_exception_specification): Check | |
2447 | regardless of -fno-exceptions. | |
2448 | * typeck2.c (merge_exception_specifiers): Relax assert by checking | |
2449 | flag_exceptions too. | |
2450 | ||
8f80cbdb NS |
2451 | 2016-03-31 Nathan Sidwell <nathan@acm.org> |
2452 | ||
2453 | * decl.c (start_preparsed_function): Remove unnecessary bracing. | |
2454 | (finish_destructor_body): Don't emit operator delete here. | |
2455 | ||
88504f34 NS |
2456 | 2016-03-31 Nathan Sidwell <nathan@acm.org> |
2457 | ||
2458 | PR c++/70393 | |
2459 | * constexpr.c (cxx_eval_store_expression): Keep CONSTRUCTOR | |
2460 | elements in field order. | |
2461 | ||
5fde6a45 MP |
2462 | 2016-03-31 Marek Polacek <polacek@redhat.com> |
2463 | ||
2464 | PR c/70297 | |
2465 | * decl.c (duplicate_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN. | |
2466 | ||
efc3536f RB |
2467 | 2016-03-31 Richard Biener <rguenther@suse.de> |
2468 | ||
2469 | PR c++/70430 | |
2470 | * typeck.c (cp_build_binary_op): Fix operand order of vector | |
2471 | conditional in truth op handling. | |
2472 | ||
e0bffbbb JM |
2473 | 2016-03-29 Jason Merrill <jason@redhat.com> |
2474 | ||
2475 | PR c++/70353 | |
2476 | * decl.c (make_rtl_for_nonlocal_decl): Don't defer local statics | |
2477 | in constexpr functions. | |
2478 | ||
bfec0b4d JM |
2479 | 2016-03-28 Jason Merrill <jason@redhat.com> |
2480 | ||
2481 | PR c++/70422 | |
2482 | PR c++/64266 | |
2483 | PR c++/70353 | |
2484 | * decl.c, pt.c, constexpr.c: Revert last patch. | |
2485 | ||
d7796e23 JM |
2486 | 2016-03-25 Jason Merrill <jason@redhat.com> |
2487 | Martin Liška <mliska@suse.cz> | |
2488 | ||
2489 | PR c++/64266 | |
2490 | PR c++/70353 | |
2491 | Core issue 1962 | |
2492 | * decl.c (cp_fname_init): Decay the initializer to pointer. | |
2493 | (cp_make_fname_decl): Set DECL_DECLARED_CONSTEXPR_P, | |
2494 | DECL_VALUE_EXPR, DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. | |
2495 | Don't call cp_finish_decl. | |
2496 | * pt.c (tsubst_expr) [DECL_EXPR]: Set DECL_VALUE_EXPR, | |
2497 | DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. Don't call cp_finish_decl. | |
2498 | * constexpr.c (cxx_eval_constant_expression) [VAR_DECL]: | |
2499 | Handle DECL_VALUE_EXPR. | |
2500 | ||
52228180 JM |
2501 | 2016-03-24 Jason Merrill <jason@redhat.com> |
2502 | ||
8a29084d JM |
2503 | PR c++/70386 |
2504 | * constexpr.c (cxx_eval_bare_aggregate): Handle PMFs. | |
2505 | ||
52228180 JM |
2506 | PR c++/70323 |
2507 | * constexpr.c (cxx_eval_call_expression): Don't cache result if | |
2508 | *overflow_p. | |
2509 | ||
887ab4e5 PP |
2510 | 2016-03-24 Patrick Palka <ppalka@gcc.gnu.org> |
2511 | ||
2512 | PR c++/62212 | |
2513 | * tree.c (build_cplus_array_type): Determine type-dependentess | |
2514 | with uses_template_parms instead of with dependent_type_p. | |
2515 | ||
426b9428 PP |
2516 | 2016-03-23 Patrick Palka <ppalka@gcc.gnu.org> |
2517 | ||
2518 | PR c++/70347 | |
2519 | * typeck.c (process_init_constructor_union): If the initializer | |
2520 | is empty, use the union's NSDMI if it has one. | |
2521 | ||
cd1588c4 PP |
2522 | 2016-03-23 Patrick Palka <ppalka@gcc.gnu.org> |
2523 | ||
2524 | PR c++/70332 | |
2525 | * pt.c (tsubst_copy) [PARM_DECL]: Handle the use of 'this' in an | |
2526 | NSDMI that's part of an aggregrate initialization. | |
2527 | ||
04833609 JJ |
2528 | 2016-03-23 Jakub Jelinek <jakub@redhat.com> |
2529 | ||
928af3bf JJ |
2530 | PR c++/70001 |
2531 | * constexpr.c (cxx_eval_vec_init_1): Reuse CONSTRUCTOR initializers | |
2532 | for 1..max even for multi-dimensional arrays. Call unshare_expr | |
2533 | on it. | |
2534 | ||
61637db3 JJ |
2535 | PR c++/70323 |
2536 | * constexpr.c (cxx_eval_constant_expression): Diagnose overflow | |
2537 | on TREE_OVERFLOW constants. | |
2538 | ||
04833609 JJ |
2539 | PR c++/70376 |
2540 | * cp-gimplify.c (genericize_omp_for_stmt): Don't walk OMP_FOR_CLAUSES | |
2541 | for OMP_TASKLOOP here. | |
2542 | (cp_genericize_r): Handle OMP_TASKLOOP like OMP_TASK, except do call | |
2543 | genericize_omp_for_stmt instead of cp_walk_tree on OMP_BODY. | |
2544 | ||
05aca4e7 AO |
2545 | 2016-03-23 Alexandre Oliva <aoliva@redhat.com> |
2546 | Jason Merrill <jason@redhat.com> | |
2547 | Jakub Jelinek <jakub@redhat.com> | |
2548 | ||
2549 | PR c++/69315 | |
2550 | * cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): Remove. | |
2551 | * decl.c (defer_mark_used_calls, deferred_mark_used_calls): Remove. | |
2552 | (finish_function): Don't set or test them. | |
2553 | * decl2.c (mark_used): Don't handle defer_mark_used_calls. | |
2554 | ||
96a4ef9d JM |
2555 | 2016-03-23 Jason Merrill <jason@redhat.com> |
2556 | ||
2557 | PR c++/70344 | |
2558 | * constexpr.c (cxx_eval_call_expression): Catch invalid recursion. | |
2559 | ||
fbdb6baf MP |
2560 | 2016-03-23 Marek Polacek <polacek@redhat.com> |
2561 | ||
2562 | PR c++/69884 | |
2563 | * pt.c (canonicalize_type_argument): Use OPT_Wignored_attributes. | |
2564 | ||
6cedf922 IE |
2565 | 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com> |
2566 | ||
2567 | * call.c (build_conditional_expr_1): Always use original | |
2568 | condition type for vector type checks and build. | |
2569 | ||
16f6d7dc PP |
2570 | 2016-03-22 Patrick Palka <ppalka@gcc.gnu.org> |
2571 | ||
2572 | PR c++/70096 | |
2573 | * pt.c (tsubst_decl): Clear the DECL_MODE of the new decl. | |
2574 | ||
a3e2b438 PP |
2575 | 2016-03-22 Patrick Palka <ppalka@gcc.gnu.org> |
2576 | ||
2577 | PR c++/70204 | |
2578 | * constexpr.c (non_const_var_error): Check | |
2579 | DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. | |
2580 | ||
ad779205 RH |
2581 | 2016-03-21 Richard Henderson <rth@redhat.com> |
2582 | ||
2583 | PR c++/70273 | |
2584 | * decl.c (notice_forced_label_r): New. | |
2585 | (cp_finish_decl): Use it. | |
2586 | ||
683b8101 JM |
2587 | 2016-03-21 Jason Merrill <jason@redhat.com> |
2588 | ||
2589 | PR c++/70285 | |
2590 | * cp-gimplify.c (cp_fold) [COND_EXPR]: Handle bit-fields. | |
2591 | ||
eb0dbdc7 JM |
2592 | 2016-03-18 Jason Merrill <jason@redhat.com> |
2593 | ||
86461cad JM |
2594 | PR c++/70139 |
2595 | * constexpr.c (cxx_eval_call_expression): Fix trivial copy. | |
2596 | ||
b5a28d80 JM |
2597 | PR c++/70147 |
2598 | * class.c (vptr_via_virtual_p): New. | |
2599 | (most_primary_binfo): Factor out of build_rtti_vtbl_entries. | |
2600 | * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Don't clear | |
2601 | a vptr from any virtual base in a not-in-charge 'structor. | |
2602 | ||
bf08acda JM |
2603 | * decl.c (build_clobber_this): Factor out of |
2604 | start_preparsed_function and begin_destructor_body. Handle | |
2605 | virtual bases better. | |
2606 | ||
eb0dbdc7 JM |
2607 | * class.c (build_if_in_charge): Split out from build_base_path. |
2608 | * init.c (expand_virtual_init, expand_default_init): Use it. | |
2609 | * call.c (build_special_member_call): Use it. | |
2610 | ||
dd125026 JJ |
2611 | 2016-03-18 Jakub Jelinek <jakub@redhat.com> |
2612 | ||
2613 | PR c++/70267 | |
2614 | * init.c (build_new_1): Complain and return error_mark_node | |
2615 | if alloc_fn is not _Jv_AllocObject function returning pointer. | |
2616 | ||
91914f0a PP |
2617 | 2016-03-18 Patrick Palka <ppalka@gcc.gnu.org> |
2618 | ||
2619 | PR c++/70205 | |
2620 | * search.c (adjust_result_of_qualified_name_lookup): Don't | |
2621 | update the BASELINK_BINFO of DECL if the second call | |
2622 | to lookup_base fails. | |
2623 | ||
753a8910 PP |
2624 | 2016-03-18 Patrick Palka <ppalka@gcc.gnu.org> |
2625 | ||
2626 | PR c++/70218 | |
2627 | * parser.c (cp_parser_lambda_expression): Move call to | |
2628 | pop_deferring_access_checks ahead of the call to | |
2629 | cp_parser_end_tentative_firewall. | |
2630 | ||
a3aad0e6 JJ |
2631 | 2016-03-17 Jakub Jelinek <jakub@redhat.com> |
2632 | ||
17366700 JJ |
2633 | PR c++/70144 |
2634 | * cp-tree.h (magic_varargs_p): Return int instead of bool. | |
2635 | * call.c (magic_varargs_p): Return int instead of bool, return 2 for | |
2636 | Cilk+ reductions, otherwise 1 for magic varargs and 0 for normal | |
2637 | varargs. | |
2638 | (build_over_call): If magic_varargs_p == 2, call reject_gcc_builtin, | |
2639 | if magic_varargs_p == 1, call decay_conversion | |
2640 | instead of mark_type_use. Don't store error_mark_node arguments to | |
2641 | argarray, instead return error_mark_node. | |
2642 | ||
a3aad0e6 JJ |
2643 | PR c++/70272 |
2644 | * decl.c (begin_destructor_body): Don't insert clobber if | |
2645 | is_empty_class (current_class_type). | |
2646 | ||
b1970801 MP |
2647 | 2016-03-17 Marek Polacek <polacek@redhat.com> |
2648 | ||
2649 | PR c++/70194 | |
2650 | * typeck.c (warn_for_null_address): New function. | |
2651 | (cp_build_binary_op): Call it. | |
2652 | ||
c5e003cf JM |
2653 | 2016-03-16 Jason Merrill <jason@redhat.com> |
2654 | ||
2655 | PR c++/70259 | |
2656 | * decl.c (start_preparsed_function): Don't clobber an empty base. | |
2657 | ||
1935f250 JJ |
2658 | 2016-03-16 Jakub Jelinek <jakub@redhat.com> |
2659 | ||
6651c93e JJ |
2660 | PR c++/70147 |
2661 | * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Conditionalize | |
2662 | BINFO_VIRTUAL_P vtable clearing on current_in_charge_parm. | |
2663 | ||
1935f250 JJ |
2664 | PR c++/70147 |
2665 | * cp-ubsan.c (cp_ubsan_maybe_initialize_vtbl_ptrs): Temporarily | |
2666 | set in_base_initializer. | |
2667 | ||
42c729c5 MP |
2668 | 2016-03-15 Marek Polacek <polacek@redhat.com> |
2669 | ||
2670 | PR c++/70209 | |
2671 | * tree.c (strip_typedefs): Call strip_typedefs again on the | |
2672 | DECL_ORIGINAL_TYPE result. | |
2673 | ||
3f91db69 JM |
2674 | 2016-03-15 Jason Merrill <jason@redhat.com> |
2675 | ||
d1ccf407 JM |
2676 | PR c++/70095 |
2677 | * pt.c (instantiate_decl): Fix call to variable_template_p. | |
2678 | ||
3f91db69 JM |
2679 | PR c++/70141 |
2680 | * pt.c (for_each_template_parm_r): Always walk into TYPENAME_TYPE. | |
2681 | ||
598a208c CC |
2682 | 2016-03-14 Casey Carter <casey@carter.net> |
2683 | Jason Merrill <jason@redhat.com> | |
2684 | ||
08a1cadc | 2685 | P0184R0: Generalizing the Range-Based For Loop |
598a208c CC |
2686 | * parser.c (cp_convert_range_for): Set the type of __end separately. |
2687 | (cp_parser_perform_range_for_lookup): Allow different begin/end | |
2688 | types if they are comparable. | |
2689 | ||
3f1e5d3a PP |
2690 | 2016-03-12 Patrick Palka <ppalka@gcc.gnu.org> |
2691 | ||
2692 | PR c++/70106 | |
2693 | * semantics.c (force_paren_expr): Just build a PAREN_EXPR when | |
2694 | processing_template_decl and EXPR is a SCOPE_REF. | |
2695 | ||
b87a8d7d PP |
2696 | 2016-03-10 Patrick Palka <ppalka@gcc.gnu.org> |
2697 | Jakub Jelinek <jakub@redhat.com> | |
2698 | ||
2699 | PR c++/70001 | |
2700 | * constexpr.c (cxx_eval_vec_init_1): For pre_init case, reuse | |
2701 | return value from cxx_eval_constant_expression from earlier | |
2702 | elements if it is valid constant initializer requiring no | |
2703 | relocations. | |
2704 | ||
d49b0aa0 MP |
2705 | 2016-03-10 Marek Polacek <polacek@redhat.com> |
2706 | ||
2707 | PR c++/70153 | |
2708 | * cp-gimplify.c (cp_fold): Handle UNARY_PLUS_EXPR. | |
2709 | ||
96b3c82d CP |
2710 | 2016-03-09 Cesar Philippidis <cesar@codesourcery.com> |
2711 | ||
2712 | * parser.c (cp_parser_oacc_loop): Update cclauses and clauses | |
2713 | when calling c_finish_omp_clauses. | |
2714 | ||
1e546b68 JM |
2715 | 2016-03-08 Jason Merrill <jason@redhat.com> |
2716 | ||
80aac5c8 JM |
2717 | * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful |
2718 | diagnostic for use of "concept". | |
2719 | (cp_parser_requires_clause_opt): And "requires". | |
2720 | (cp_parser_type_parameter, cp_parser_late_return_type_opt) | |
2721 | (cp_parser_explicit_template_declaration): Adjust. | |
2722 | * Make-lang.in (check-c++-all): Add "concepts" to std list. | |
2723 | ||
1e546b68 JM |
2724 | P0036R0: Unary Folds and Empty Parameter Packs |
2725 | * pt.c (expand_empty_fold): Remove special cases for *,+,&,|. | |
2726 | ||
56aae4b7 JJ |
2727 | 2016-03-08 Jakub Jelinek <jakub@redhat.com> |
2728 | ||
d259b234 JJ |
2729 | PR c++/70135 |
2730 | * constexpr.c (cxx_eval_loop_expr): Forget saved values of SAVE_EXPRs | |
2731 | even after the last iteration of the loop. | |
2732 | ||
56aae4b7 JJ |
2733 | * decl.c (duplicate_decls): Fix spelling - becuase -> because. |
2734 | ||
dbb23418 PP |
2735 | 2016-03-07 Patrick Palka <ppalka@gcc.gnu.org> |
2736 | ||
2737 | PR c++/66786 | |
2738 | * pt.c (get_template_info): Handle PARM_DECL. | |
2739 | (template_class_depth): Check DECL_P instead of | |
2740 | VAR_OR_FUNCTION_DECL_P. | |
2741 | ||
d96e8407 JM |
2742 | 2016-03-05 Jason Merrill <jason@redhat.com> |
2743 | ||
2744 | PR c++/67364 | |
2745 | * constexpr.c (cxx_eval_store_expression): Replace | |
2746 | CONSTRUCTOR_ELTS in nested CONSTRUCTORs, too. | |
2747 | ||
7a3a3fad PP |
2748 | 2016-03-05 Patrick Palka <ppalka@gcc.gnu.org> |
2749 | ||
2750 | PR c++/66786 | |
2751 | * pt.c (template_class_depth): Given a lambda type, iterate | |
2752 | into its LAMBDA_TYPE_EXTRA_SCOPE field instead of its | |
2753 | TYPE_CONTEXT. Given a VAR_DECL, iterate into its | |
2754 | CP_DECL_CONTEXT. | |
2755 | ||
d5bcd6d4 JM |
2756 | 2016-03-04 Jason Merrill <jason@redhat.com> |
2757 | ||
2758 | PR c++/69203 | |
2759 | * cp-tree.h (COND_EXPR_IS_VEC_DELETE): New. | |
2760 | * init.c (build_vec_delete_1): Set it. | |
2761 | * constexpr.c (potential_constant_expression_1) [COND_EXPR]: Check it. | |
2762 | ||
0c8825de JJ |
2763 | 2016-03-04 Jakub Jelinek <jakub@redhat.com> |
2764 | ||
411d61c4 JJ |
2765 | * decl.c (start_preparsed_function): Don't emit start clobber at the |
2766 | start of constructor clones. | |
2767 | ||
0c8825de JJ |
2768 | PR c++/70035 |
2769 | * cp-tree.h (cp_ubsan_maybe_initialize_vtbl_ptrs): New prototype. | |
2770 | * decl.c (start_preparsed_function): Call | |
2771 | cp_ubsan_maybe_initialize_vtbl_ptrs if needed. | |
2772 | * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs, | |
2773 | cp_ubsan_maybe_initialize_vtbl_ptrs): New functions. | |
2774 | ||
b54eff8b JM |
2775 | 2016-03-04 Jason Merrill <jason@redhat.com> |
2776 | ||
188e53bd JM |
2777 | PR c++/67364 |
2778 | * constexpr.c (cxx_eval_component_reference): Further tweak. | |
2779 | ||
39dce2b7 JM |
2780 | * constexpr.c (struct constexpr_ctx): Add save_exprs field. |
2781 | (cxx_eval_loop_expr): Discard SAVE_EXPR values before looping. | |
2782 | (cxx_eval_constant_expression) [SAVE_EXPR]: Add it to the set. | |
2783 | (cxx_eval_outermost_constant_expr, is_sub_constant_expr): Initialize. | |
2784 | ||
b54eff8b JM |
2785 | PR c++/70067 |
2786 | * tree.c (strip_typedefs): Handle TYPENAME_TYPE lookup finding the | |
2787 | same type. | |
2788 | ||
639475f0 JM |
2789 | 2016-03-03 Jason Merrill <jason@redhat.com> |
2790 | ||
b47d1d90 JM |
2791 | * method.c (synthesized_method_walk): operator= can also be constexpr. |
2792 | ||
a0a6a8c9 JM |
2793 | * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Get |
2794 | LAMBDA_EXPR_RETURN_TYPE from the instantiated closure. | |
2795 | ||
264fd142 JM |
2796 | PR c++/67164 |
2797 | * pt.c (copy_template_args): New. | |
2798 | (tsubst_pack_expansion): Use it. | |
2799 | ||
45c3e69b JM |
2800 | * call.c (build_aggr_conv): Use get_nsdmi. |
2801 | ||
16dc6b17 JM |
2802 | PR c++/51406 |
2803 | * typeck.c (build_static_cast_1): Avoid folding back to lvalue. | |
2804 | ||
639475f0 JM |
2805 | PR c++/67364 |
2806 | * constexpr.c (cxx_eval_component_reference): Just return an empty | |
2807 | CONSTRUCTOR for an empty class. | |
2808 | ||
7f0e23e9 JM |
2809 | 2016-03-01 Jason Merrill <jason@redhat.com> |
2810 | ||
5c969cb8 JM |
2811 | PR c++/70036 |
2812 | * parser.c (cp_parser_requires_clause): Call | |
2813 | check_for_bare_parameter_packs. | |
2814 | ||
c8a66fc9 JM |
2815 | PR c++/51489 |
2816 | * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT | |
2817 | the operands. | |
2818 | ||
7f0e23e9 JM |
2819 | PR c++/69995 |
2820 | * constexpr.c (cxx_eval_call_expression): Unshare arg. | |
2821 | (cxx_eval_constant_expression) [DECL_EXPR]: Unshare init. | |
2822 | [TARGET_EXPR]: Unshare init. | |
2823 | ||
76d881bf PP |
2824 | 2016-03-01 Patrick Palka <ppalka@gcc.gnu.org> |
2825 | ||
2826 | PR c++/68948 | |
2827 | PR c++/69961 | |
2828 | * pt.c (tsubst_baselink): Reinstate the check for an invalid | |
2829 | constructor call. | |
2830 | ||
7574c916 JM |
2831 | 2016-02-28 Jason Merrill <jason@redhat.com> |
2832 | ||
2833 | PR c++/69995 | |
2834 | * constexpr.c (cxx_eval_store_expression): Unshare init. | |
2835 | ||
56cde077 JM |
2836 | 2016-02-26 Jason Merrill <jason@redhat.com> |
2837 | ||
2838 | PR c++/69958 | |
2839 | * pt.c (make_argument_pack): New. | |
2840 | (tsubst_copy) [SIZEOF_EXPR]: Handle partial expansion. | |
2841 | (tsubst_copy_and_build): Likewise. | |
2842 | ||
6284a979 JM |
2843 | 2016-02-25 Jason Merrill <jason@redhat.com> |
2844 | ||
8ba8c375 JM |
2845 | PR c++/69889 |
2846 | * cp-tree.h (AGGR_INIT_FROM_THUNK_P): New. | |
2847 | * tree.c (build_aggr_init_expr): Set it. | |
2848 | * semantics.c (simplify_aggr_init_expr): Check it. | |
2849 | * cp-gimplify.c (cp_genericize_r): Don't walk into | |
2850 | a call/aggr_init from a thunk. | |
2851 | ||
bd28a34f JM |
2852 | PR c++/69842 |
2853 | * method.c (forward_parm): Handle parameter packs. | |
2854 | * lambda.c (maybe_add_lambda_conv_op): Use it for them. | |
2855 | ||
6a0cc1cd JM |
2856 | PR c++/67364 |
2857 | * constexpr.c (cxx_eval_component_reference): Don't complain about | |
2858 | unevaluated empty classes. | |
2859 | ||
6284a979 JM |
2860 | PR c++/68049 |
2861 | * tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE. | |
2862 | ||
1137001c PP |
2863 | 2016-02-25 Patrick Palka <ppalka@gcc.gnu.org> |
2864 | ||
2865 | PR c++/69736 | |
2866 | * cp-tree.h (REF_PARENTHESIZED_P): Adjust documentation. | |
2867 | (maybe_undo_parenthesized_ref): Declare. | |
2868 | * semantics.c (maybe_undo_parenthesized_ref): Split out from | |
2869 | check_return_expr. | |
2870 | (finish_call_expr): Use it. | |
2871 | * typeck.c (check_return_expr): Use it. | |
2872 | * pt.c (tsubst_copy_and_build) [INDIRECT_REF]: Retain the | |
2873 | REF_PARENTHESIZED_P flag. | |
2874 | ||
03ca8fb3 JJ |
2875 | 2016-02-24 Jakub Jelinek <jakub@redhat.com> |
2876 | ||
2877 | PR c++/69922 | |
2878 | * class.c (build_base_path): Set TREE_NO_WARNING on the null_test. | |
2879 | Avoid folding it. | |
2880 | * init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL | |
2881 | tests. | |
2882 | * cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL, | |
2883 | unless they are folded into INTEGER_CST, error_mark_node or some | |
2884 | comparison with NULL, avoid folding them and use either the original | |
2885 | comparison or non-folded comparison of folded arguments. | |
2886 | * cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the | |
2887 | comparison, don't fold the comparison right away. | |
2888 | ||
944e9f5f JM |
2889 | 2016-02-24 Jason Merrill <jason@redhat.com> |
2890 | ||
2891 | PR c++/69323 | |
2892 | * friend.c (make_friend_class): Likewise. | |
2893 | * decl.c (lookup_and_check_tag): Diagnose invalid dependent friend. | |
2894 | ||
b8599b68 JM |
2895 | 2016-02-24 Jason Merrill <jason@redhat.com> |
2896 | ||
2897 | PR c++/69323 | |
2898 | * pt.c (instantiate_class_template_1): Set | |
2899 | processing_template_decl before substituting friend_type. | |
2900 | ||
3b96b93a MS |
2901 | 016-02-24 Martin Sebor <msebor@redhat.com> |
2902 | ||
2903 | PR c++/69912 | |
2904 | * tree.c (build_ctor_subob_ref): Compare types' main variants | |
2905 | instead of the types as they are. | |
2906 | ||
28577b86 JM |
2907 | 2016-02-24 Jason Merrill <jason@redhat.com> |
2908 | ||
a021961c JM |
2909 | * decl.c (start_preparsed_function): Condition ctor clobber on |
2910 | flag_lifetime_dse > 1. | |
2911 | ||
28577b86 JM |
2912 | * cp-gimplify.c (cp_fold): Don't fold constexpr calls if -fno-inline. |
2913 | ||
2207c599 JM |
2914 | 2016-02-19 Jason Merrill <jason@redhat.com> |
2915 | ||
2916 | PR c++/69743 | |
2917 | * call.c (remaining_arguments): No longer static. | |
2918 | * cp-tree.h: Declare it. | |
2919 | * pt.c (more_specialized_fn): Use it. | |
2920 | ||
3a27b4db JJ |
2921 | 2016-02-19 Jakub Jelinek <jakub@redhat.com> |
2922 | Bernd Edlinger <bernd.edlinger@hotmail.de> | |
2923 | ||
2924 | * Make-lang.in: Invoke gperf with -L C++. | |
2925 | * cfns.gperf: Remove prototypes for hash and libc_name_p | |
2926 | inlines. | |
2927 | * cfns.h: Regenerated. | |
2928 | * except.c (nothrow_libfn_p): Adjust. | |
2929 | ||
7a965d51 JJ |
2930 | 2016-02-19 Jakub Jelinek <jakub@redhat.com> |
2931 | ||
2932 | PR c++/69850 | |
2933 | * rtti.c (ifnonnull): Set TREE_NO_WARNING on the condition, use | |
2934 | NE_EXPR instead of EQ_EXPR and swap last two arguments on COND_EXPR. | |
2935 | ||
200e869c PP |
2936 | 2016-02-19 Patrick Palka <ppalka@gcc.gnu.org> |
2937 | ||
2938 | PR c++/68948 | |
2939 | * pt.c (tsubst_baselink): Don't diagnose an invalid constructor | |
2940 | call here. | |
2941 | * semantics.c (finish_call_expr): Don't assume a constructor | |
2942 | call is dependent if only the "this" pointer is dependent. When | |
2943 | building a constructor call, always use a dummy object. | |
2944 | ||
19e21586 JJ |
2945 | 2016-02-19 Jakub Jelinek <jakub@redhat.com> |
2946 | ||
03a616ac JJ |
2947 | PR c++/69850 |
2948 | * init.c (build_vec_delete_1): Set TREE_NO_WARNING on the NE_EXPR | |
2949 | condition. | |
2950 | * cp-gimplify.c (cp_fold): Propagate TREE_NO_WARNING from binary | |
2951 | operators if folding preserved the binop, just with different | |
2952 | arguments. | |
2953 | ||
19e21586 JJ |
2954 | PR c++/67767 |
2955 | * parser.c (cp_parser_std_attribute_spec_seq): Don't assume | |
2956 | attr_spec is always single element chain, chain all the attributes | |
2957 | properly together in the right order. | |
2958 | ||
747b61fc JM |
2959 | 2016-02-18 Jason Merrill <jason@redhat.com> |
2960 | ||
2961 | * mangle.c (maybe_check_abi_tags): Add for_decl parm. Call | |
2962 | mangle_decl. | |
2963 | (mangle_decl): Call maybe_check_abi_tags for function scope. | |
2964 | (mangle_guard_variable): Call maybe_check_abi_tags here. | |
2965 | (write_guarded_var_name): Not here. | |
2966 | ||
50ccdf5b JM |
2967 | 2016-02-17 Jason Merrill <jason@redhat.com> |
2968 | ||
fa837fb6 JM |
2969 | PR c++/65985 |
2970 | * constexpr.c (build_constexpr_constructor_member_initializers): | |
2971 | Handle an additional STATEMENT_LIST. | |
2972 | ||
bcb5f3c9 JM |
2973 | PR c++/68585 |
2974 | * constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection. | |
2975 | ||
50ccdf5b JM |
2976 | PR c++/68679 |
2977 | * decl2.c (reset_type_linkage_2): Look through member templates. | |
2978 | ||
932c0da4 JJ |
2979 | 2016-02-17 Jakub Jelinek <jakub@redhat.com> |
2980 | ||
2981 | PR c++/69850 | |
2982 | * init.c (build_delete): Set TREE_NO_WARNING on ifexp. | |
2983 | ||
0f02dd56 JM |
2984 | 2016-02-17 Jason Merrill <jason@redhat.com> |
2985 | ||
2986 | PR c++/69842 | |
2987 | * method.c (forward_parm): Split out from... | |
2988 | (add_one_base_init): ...here. | |
2989 | * lambda.c (maybe_add_lambda_conv_op): Use it. | |
2990 | ||
6bab4c63 JM |
2991 | 2016-02-16 Jason Merrill <jason@redhat.com> |
2992 | ||
2993 | PR c++/10200 | |
2994 | PR c++/69753 | |
2995 | * call.c, cp-tree.h, name-lookup.c, pt.c, search.c, semantics.c, | |
2996 | tree.c, typeck2.c: Revert earlier changes. | |
2997 | * parser.c (cp_parser_lookup_name): Ignore namespace-scope | |
2998 | non-type templates after -> or . | |
2999 | ||
bf14eba2 JJ |
3000 | 2016-02-16 Jakub Jelinek <jakub@redhat.com> |
3001 | ||
3002 | PR c/69835 | |
3003 | * typeck.c (cp_build_binary_op): Revert 2015-09-09 change. | |
3004 | ||
7128d6ab JM |
3005 | 2016-02-16 Jason Merrill <jason@redhat.com> |
3006 | ||
3007 | PR c++/69657 | |
3008 | * name-lookup.c (lookup_qualified_name): Add find_hidden parm. | |
3009 | (set_decl_namespace): Pass it. Complain about finding a hidden friend. | |
3010 | * name-lookup.h: Adjust. | |
3011 | ||
ba539195 JN |
3012 | 2016-02-16 James Norris <jnorris@codesourcery.com> |
3013 | ||
3014 | * parser.c (cp_parser_oacc_data_clause_deviceptr): Remove checking. | |
3015 | * semantics.c (finish_omp_clauses): Add deviceptr checking. | |
3016 | ||
f0516ca4 JJ |
3017 | 2016-02-15 Jakub Jelinek <jakub@redhat.com> |
3018 | ||
3019 | PR c++/69658 | |
3020 | * init.c (expand_default_init): Only call reshape_init | |
3021 | in the direct-initialization from an initializer list case. | |
3022 | ||
fe69277d JM |
3023 | 2016-02-15 Jason Merrill <jason@redhat.com> |
3024 | ||
2bd0a2d6 JM |
3025 | PR c++/69753 |
3026 | * semantics.c (finish_call_expr): Implicit 'this' does not make | |
3027 | the call dependent. | |
3028 | * search.c (any_dependent_bases_p): Split out... | |
3029 | * name-lookup.c (do_class_using_decl): ...from here. | |
3030 | * call.c (build_new_method_call_1): Don't complain about missing object | |
3031 | if there are dependent bases. Tweak error. | |
3032 | * tree.c (non_static_member_function_p): Remove. | |
3033 | * pt.c (type_dependent_expression_p): A member template of a | |
3034 | dependent type is dependent. | |
3035 | * cp-tree.h: Adjust. | |
3036 | ||
fe69277d JM |
3037 | PR c++/68890 |
3038 | * constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check. | |
3039 | ||
38d795d2 PP |
3040 | 2016-02-12 Patrick Palka <ppalka@gcc.gnu.org> |
3041 | ||
3042 | PR c++/69098 | |
3043 | * pt.c (lookup_and_finish_template_variable): New function, | |
3044 | extracted from ... | |
3045 | (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: ... here. Use it. | |
3046 | (tsubst_qualified_id): Consider that EXPR might be a variable | |
3047 | template. | |
3048 | * typeck.c (check_template_keyword): Don't emit an error | |
3049 | if DECL is a variable template. | |
3050 | ||
9c582551 JJ |
3051 | 2016-02-12 Jakub Jelinek <jakub@redhat.com> |
3052 | ||
3053 | * error.c: Spelling fixes - behaviour -> behavior and | |
3054 | neighbour -> neighbor. | |
3055 | * decl.c: Likewise. | |
3056 | * typeck.c (cp_build_binary_op): Fix up behavior spelling in | |
3057 | diagnostics. | |
3058 | * init.c (build_delete): Likewise. | |
3059 | ||
66756373 JJ |
3060 | 2016-02-11 Jakub Jelinek <jakub@redhat.com> |
3061 | ||
3062 | PR c/69768 | |
3063 | * typeck.c (cp_build_binary_op): cp_fully_fold integer_zerop | |
3064 | arguments for -Waddress warning. Fix up formatting. | |
3065 | ||
0d7d9458 PC |
3066 | 2016-02-11 Paolo Carlini <paolo.carlini@oracle.com> |
3067 | ||
3068 | PR c++/68726 | |
3069 | * pt.c (lookup_template_class_1): Check tsubst return value for | |
3070 | error_mark_node. | |
3071 | ||
3a4219ca JM |
3072 | 2016-02-10 Jason Merrill <jason@redhat.com> |
3073 | ||
46f0d909 JM |
3074 | PR c++/68926 |
3075 | * pt.c (resolve_nondeduced_context): Add complain parm. | |
3076 | (do_auto_deduction): Pass it. | |
3077 | * cvt.c (convert_to_void): Likewise. | |
3078 | * decl.c (cp_finish_decl): Likewise. | |
3079 | * init.c (build_new): Likewise. | |
3080 | * rtti.c (get_tinfo_decl_dynamic): Likewise. | |
3081 | * semantics.c (finish_decltype_type): Likewise. | |
3082 | * typeck.c (decay_conversion): Likewise. | |
3083 | * cp-tree.h: Adjust declaration. | |
3084 | * call.c (standard_conversion): Add complain parm, pass it along. | |
3085 | (implicit_conversion): Pass it. | |
3086 | ||
89908c8f JM |
3087 | PR c++/69657 |
3088 | * name-lookup.c (ambiguous_decl): Call remove_hidden_names. | |
3089 | (lookup_name_real_1): Likewise. | |
3090 | (remove_hidden_names): Handle non-functions too. | |
3091 | ||
ff2faafc JM |
3092 | PR c++/10200 |
3093 | * parser.c (cp_parser_lookup_name): When looking for a template | |
3094 | after . or ->, only consider class templates. | |
3095 | (cp_parser_postfix_dot_deref_expression): Handle the current | |
3096 | instantiation. Remember a dependent object expression. | |
3097 | * typeck2.c (build_x_arrow): Handle the current instantiation. | |
3098 | ||
3a4219ca JM |
3099 | * ptree.c (debug_tree): Implement for cp_expr. |
3100 | ||
efb45a9f PP |
3101 | 2016-02-08 Patrick Palka <ppalka@gcc.gnu.org> |
3102 | ||
3103 | PR c++/69139 | |
3104 | * parser.c (cp_parser_simple_type_specifier): Make the check | |
3105 | for disambiguating between an 'auto' placeholder and an implicit | |
3106 | template parameter more robust. | |
3107 | ||
20a0c6f9 PP |
3108 | 2016-02-08 Patrick Palka <ppalka@gcc.gnu.org> |
3109 | ||
3110 | PR c++/69283 | |
3111 | PR c++/67835 | |
3112 | * decl2.c (mark_used): When given a TEMPLATE_DECL, return after | |
3113 | setting its TREE_USED flag. | |
3114 | ||
1374a761 JM |
3115 | 2016-02-08 Jason Merrill <jason@redhat.com> |
3116 | ||
3117 | PR c++/69657 | |
3118 | * name-lookup.c (do_nonmember_using_decl): Leave anticipated | |
3119 | built-ins alone. | |
3120 | ||
f68bc23f JJ |
3121 | 2016-02-08 Jakub Jelinek <jakub@redhat.com> |
3122 | ||
3123 | PR c++/59627 | |
3124 | * parser.c (cp_parser_omp_declare_reduction): Set assembler name | |
3125 | of the DECL_OMP_DECLARE_REDUCTION_P decls. | |
3126 | ||
eba9e839 MP |
3127 | 2016-02-08 Marek Polacek <polacek@redhat.com> |
3128 | ||
3129 | PR c++/69688 | |
3130 | * constexpr.c (clear_cv_and_fold_caches): Renamed from clear_cv_cache. | |
3131 | Call clear_fold_cache. | |
3132 | * cp-tree.h: Adjust declaration. | |
3133 | * decl.c (finish_enum_value_list): Call clear_cv_and_fold_caches | |
3134 | rather than clear_cv_cache and clear_fold_cache. | |
3135 | * typeck2.c (store_init_value): Call clear_cv_and_fold_caches. | |
3136 | ||
415594bb JM |
3137 | 2016-02-08 Jason Merrill <jason@redhat.com> |
3138 | ||
3139 | * cp-tree.h (CONV_FOLD, CONV_BACKEND_CONVERT): New. | |
3140 | * cvt.c (convert): Pass CONV_BACKEND_CONVERT. | |
3141 | (ocp_convert): Use *_maybe_fold. | |
3142 | (cp_convert_to_pointer): Add dofold parameter. | |
3143 | * cp-gimplify.c (cp_fold) [CONVERT_EXPR]: Call convert. | |
3144 | ||
46cb9332 MS |
3145 | 2016-02-05 Martin Sebor <msebor@redhat.com> |
3146 | ||
3147 | PR c++/69662 | |
3148 | * init.c (find_field_init): New function. | |
3149 | (warn_placement_new_too_small): Call it. Handle one-element arrays | |
3150 | at ends of structures special. | |
3151 | ||
0fd9d492 JM |
3152 | 2016-02-05 Jason Merrill <jason@redhat.com> |
3153 | ||
3154 | PR c++/68948 | |
3155 | * semantics.c (finish_expr_stmt): If expr is error_mark_node, | |
3156 | make sure we've seen_error(). | |
3157 | ||
76c85fbb PP |
3158 | 2016-02-05 Patrick Palka <ppalka@gcc.gnu.org> |
3159 | ||
3160 | PR c++/68948 | |
3161 | * pt.c (tsubst_baselink): Diagnose an invalid constructor call | |
3162 | if lookup_fnfields returns NULL_TREE and the name being looked | |
3163 | up has the form A::A. | |
3164 | ||
618d6c1c PP |
3165 | 2016-02-04 Patrick Palka <ppalka@gcc.gnu.org> |
3166 | ||
3167 | * constexpr.c (cxx_eval_binary_expression): Fold equality | |
3168 | comparisons involving PTRMEM_CSTs. | |
3169 | ||
d1243d27 JJ |
3170 | 2016-02-04 Jakub Jelinek <jakub@redhat.com> |
3171 | ||
3172 | * class.c (find_flexarrays): Don't declare dom variable. | |
3173 | (diagnose_flexarray): Likewise. | |
3174 | ||
05dd97db MS |
3175 | 2016-02-02 Martain Sebor <msebor@redhat.com> |
3176 | ||
3177 | PR c++/69251 | |
3178 | PR c++/69253 | |
3179 | PR c++/69290 | |
3180 | PR c++/69277 | |
3181 | PR c++/69349 | |
3182 | * class.c (walk_subobject_offsets): Avoid testing the upper bound | |
3183 | of a flexible array member for equality to null. | |
3184 | (find_flexarrays): Remove spurious whitespace introduced in r231665. | |
3185 | (diagnose_flexarrays): Avoid checking the upper bound of arrays. | |
3186 | (check_flexarrays): Same. | |
3187 | * decl.c (compute_array_index_type): Avoid special case for flexible | |
3188 | array members. | |
3189 | (grokdeclarator): Avoid calling compute_array_index_type for flexible | |
3190 | array members. | |
3191 | * error.c (dump_type_suffix): Revert changes introduced in r231665 | |
3192 | and rendered unnecessary by the changes above. | |
3193 | * pt.c (tsubst): Same. | |
3194 | * tree.c (build_ctor_subob_ref): Handle flexible array members. | |
3195 | * typeck2.c (digest_init_r): Revert changes introduced in r231665. | |
3196 | (process_init_constructor_array): Same. | |
3197 | (process_init_constructor_record): Same. | |
3198 | ||
ab4bae0c PP |
3199 | 2016-02-03 Patrick Palka <ppalka@gcc.gnu.org> |
3200 | ||
3201 | PR c++/69056 | |
3202 | * pt.c (try_one_overload): Handle comparing argument packs so | |
3203 | that there is no conflict if we deduced more arguments of an | |
3204 | argument pack than were explicitly specified. | |
3205 | ||
75a27d35 JJ |
3206 | 2016-01-31 Jakub Jelinek <jakub@redhat.com> |
3207 | Jason Merrill <jason@redhat.com> | |
3208 | ||
3209 | PR c++/68763 | |
3210 | * tree.c (strip_typedefs) [FUNCTION_TYPE]: Avoid building a new | |
3211 | function type if nothing is changing. | |
3212 | ||
b676a079 JM |
3213 | 2016-01-31 Jason Merrill <jason@redhat.com> |
3214 | ||
6978c505 JM |
3215 | PR c++/69009 |
3216 | * pt.c (partial_specialization_p, impartial_args): New. | |
3217 | (instantiate_decl): Call impartial_args. | |
3218 | ||
b1568582 JM |
3219 | * mangle.c (maybe_check_abi_tags): New. |
3220 | (write_guarded_var_name): Call it. | |
3221 | (mangle_ref_init_variable): Call check_abi_tags. | |
3222 | ||
b676a079 JM |
3223 | * pt.c (lookup_template_class_1): Don't share TYPE_ATTRIBUTES |
3224 | between template and instantiation. | |
3225 | ||
16b77b32 JJ |
3226 | 2016-01-29 Jakub Jelinek <jakub@redhat.com> |
3227 | ||
3228 | PR debug/66869 | |
3229 | * decl.c (wrapup_globals_for_namespace): Warn about unused static | |
3230 | function declarations. | |
3231 | ||
5453bfed MP |
3232 | 2016-01-29 Marek Polacek <polacek@redhat.com> |
3233 | ||
3234 | PR c++/69509 | |
3235 | PR c++/69516 | |
3236 | * constexpr.c (cxx_eval_array_reference): Give the "array subscript | |
3237 | out of bound" error earlier. | |
3238 | * init.c (build_vec_init): Change NE_EXPR into GT_EXPR. Update the | |
3239 | commentary. | |
3240 | ||
e9f69069 PP |
3241 | 2016-01-29 Patrick Palka <ppalka@gcc.gnu.org> |
3242 | ||
3243 | * name-lookup.c (begin_scope): After reusing a cp_binding_level | |
3244 | structure, update free_binding_level before the structure's | |
3245 | level_chain field gets cleared, not after. | |
3246 | ||
e448880c JM |
3247 | 2016-01-28 Jason Merrill <jason@redhat.com> |
3248 | ||
3249 | PR c++/67407 | |
3250 | * search.c (dfs_walk_once, dfs_walk_once_r) | |
3251 | (dfs_walk_once_accessible_r, dfs_walk_once_accessible): Use | |
3252 | hash_set instead of BINFO_MARKED. | |
3253 | (dfs_unmark_r): Remove. | |
3254 | ||
2b4f7b94 PP |
3255 | 2016-01-28 Patrick Palka <ppalka@gcc.gnu.org> |
3256 | ||
3257 | PR c++/24208 | |
3258 | * parser.c (LEXER_DEBUGGING_ENABLED_P): New macro. | |
3259 | (cp_lexer_debugging_p): Use it. | |
3260 | (cp_lexer_start_debugging): Likewise. | |
3261 | (cp_lexer_stop_debugging): Likewise. | |
3262 | ||
fa74a4bc MP |
3263 | 2016-01-27 Marek Polacek <polacek@redhat.com> |
3264 | ||
3265 | PR c/68062 | |
3266 | * typeck.c (cp_build_binary_op): Promote operand to unsigned, if | |
3267 | needed. Add -Wsign-compare warning. | |
3268 | ||
5d70666e RB |
3269 | 2016-01-27 Ryan Burn <contact@rnburn.com> |
3270 | ||
3271 | PR cilkplus/69267 | |
3272 | * cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): Removed | |
3273 | superfluous post_p argument in call to | |
3274 | cilk_gimplify_call_params_in_spawned_fn. | |
3275 | ||
05bf54c3 MP |
3276 | 2016-01-27 Marek Polacek <polacek@redhat.com> |
3277 | ||
3278 | PR c++/69379 | |
3279 | * constexpr.c (cxx_eval_constant_expression): Handle PTRMEM_CSTs | |
3280 | wrapped in NOP_EXPRs. | |
3281 | ||
60214d0d MS |
3282 | 2016-01-27 Martin Sebor <msebor@redhat.com> |
3283 | ||
3284 | PR c++/69317 | |
3285 | * mangle.c (mangle_decl): Reference the correct (saved) version | |
3286 | of the ABI in -Wabi diagnostics. | |
3287 | ||
95e3030c MP |
3288 | 2016-01-27 Marek Polacek <polacek@redhat.com> |
3289 | ||
3290 | PR c++/69496 | |
3291 | * constexpr.c (cxx_eval_array_reference): Evaluate the number of | |
3292 | elements of the array. | |
3293 | ||
ca30abcd JM |
3294 | 2016-01-26 Jason Merrill <jason@redhat.com> |
3295 | ||
3296 | PR c++/68949 | |
3297 | * constexpr.c (register_constexpr_fundef): Keep the un-massaged body. | |
3298 | (cxx_eval_call_expression): Don't look through clones. | |
3299 | * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias. | |
3300 | * semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of | |
3301 | maybe-in-charge *tor. | |
3302 | ||
2d63bc39 JM |
3303 | 2016-01-26 Jason Merrill <jason@redhat.com> |
3304 | ||
3305 | PR c++/68782 | |
3306 | * constexpr.c (cxx_eval_bare_aggregate): Update TREE_CONSTANT | |
3307 | and TREE_SIDE_EFFECTS. | |
3308 | (cxx_eval_constant_expression) [CONSTRUCTOR]: Call | |
3309 | verify_constructor_flags. | |
3310 | ||
476805ae JJ |
3311 | 2016-01-26 Jakub Jelinek <jakub@redhat.com> |
3312 | ||
3313 | PR c++/68357 | |
3314 | * cp-gimplify.c (cp_fold): If some operand folds to error_mark_node, | |
3315 | return error_mark_node instead of building trees with error_mark_node | |
3316 | operands. | |
3317 | ||
01e1dea3 DM |
3318 | 2016-01-26 David Malcolm <dmalcolm@redhat.com> |
3319 | ||
3320 | PR other/69006 | |
3321 | * error.c (print_instantiation_partial_context_line): Add missing | |
3322 | newlines from output for the t == NULL case. | |
3323 | (print_instantiation_partial_context): Remove call to pp_newline. | |
3324 | ||
a59b92b0 PP |
3325 | 2016-01-24 Patrick Palka <ppalka@gcc.gnu.org> |
3326 | ||
3327 | Revert: | |
3328 | 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org> | |
3329 | ||
3330 | PR c++/11858 | |
3331 | PR c++/24663 | |
3332 | PR c++/24664 | |
3333 | * decl.c (grokdeclarator): Don't decay array parameter type to | |
3334 | a pointer type if it's dependent. | |
3335 | (grokparms): Invoke strip_top_quals instead of directly invoking | |
3336 | cp_build_qualified_type. | |
3337 | * pt.c (decay_dependent_array_parm_type): New static function. | |
3338 | (type_unification_real): Call decay_dependent_array_parm_type | |
3339 | to decay a dependent array parameter type to its corresponding | |
3340 | pointer type before unification. | |
3341 | (more_specialized_fn): Likewise. | |
3342 | (get_bindings): Likewise. | |
3343 | * tree.c (cp_build_qualified_type): Trivial typofix in | |
3344 | documentation. | |
3345 | ||
69da7802 MS |
3346 | 2016-01-23 Martin Sebor <msebor@redhat.com> |
3347 | ||
3348 | PR c++/58109 | |
3349 | PR c++/69022 | |
3350 | * decl2.c (is_late_template_attribute): Handle dependent argument | |
3351 | to attribute align and attribute vector_size. | |
3352 | ||
97ca3d0d JM |
3353 | 2016-01-21 Jason Merrill <jason@redhat.com> |
3354 | ||
130ee9a9 JM |
3355 | PR c++/69392 |
3356 | * lambda.c (lambda_capture_field_type): Handle 'this' specially | |
3357 | for init-capture, too. | |
3358 | ||
020491e6 JM |
3359 | PR c++/65687 |
3360 | * decl.c (type_is_deprecated): Don't look into a typedef. | |
3361 | ||
2f3932b9 JM |
3362 | PR c++/40751 |
3363 | PR c++/64987 | |
3364 | * decl.c (copy_type_enum): Respect TYPE_USER_ALIGN. | |
3365 | ||
97ca3d0d JM |
3366 | PR c++/43407 |
3367 | * decl.c (start_enum): Add attributes parameter. | |
3368 | * parser.c (cp_parser_enum_specifier): Pass it. | |
3369 | * pt.c (lookup_template_class_1): Pass it. | |
3370 | * cp-tree.h: Adjust. | |
3371 | ||
33f48842 JM |
3372 | 2016-01-19 Jason Merrill <jason@redhat.com> |
3373 | ||
3374 | PR c++/59759 | |
3375 | * pt.c (convert_template_argument): Handle VAR_DECL properly. | |
3376 | ||
1e297006 MP |
3377 | 2016-01-19 Marek Polacek <polacek@redhat.com> |
3378 | ||
3379 | PR c++/68586 | |
3380 | * constexpr.c (clear_cv_cache): New. | |
3381 | * cp-gimplify.c (clear_fold_cache): New. | |
3382 | * cp-tree.h (clear_cv_cache, clear_fold_cache): Declare. | |
3383 | * decl.c (finish_enum_value_list): Call them. | |
3384 | ||
38a979f2 MP |
3385 | PR c++/68965 |
3386 | * pt.c (tsubst_copy): Mark elements in expanded vector as used. | |
3387 | ||
17c15cb9 PP |
3388 | 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org> |
3389 | ||
3390 | PR c++/11858 | |
3391 | PR c++/24663 | |
3392 | PR c++/24664 | |
3393 | * decl.c (grokdeclarator): Don't decay array parameter type to | |
3394 | a pointer type if it's dependent. | |
3395 | (grokparms): Invoke strip_top_quals instead of directly invoking | |
3396 | cp_build_qualified_type. | |
3397 | * pt.c (decay_dependent_array_parm_type): New static function. | |
3398 | (type_unification_real): Call decay_dependent_array_parm_type | |
3399 | to decay a dependent array parameter type to its corresponding | |
3400 | pointer type before unification. | |
3401 | (more_specialized_fn): Likewise. | |
3402 | (get_bindings): Likewise. | |
3403 | * tree.c (cp_build_qualified_type): Trivial typofix in | |
3404 | documentation. | |
3405 | ||
7f26f7df JM |
3406 | 2016-01-18 Jason Merrill <jason@redhat.com> |
3407 | ||
4b0b30ef JM |
3408 | * cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input. |
3409 | ||
8d8f3235 JM |
3410 | * cp-gimplify.c (cp_fold): Remove unnecessary special cases. |
3411 | ||
7f26f7df JM |
3412 | PR c++/68767 |
3413 | * cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify. Do fold COND_EXPR. | |
3414 | (contains_label_1, contains_label_p): Remove. | |
3415 | ||
ec7886c1 PP |
3416 | 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org> |
3417 | ||
3418 | PR c++/69091 | |
3419 | * pt.c (type_dependent_expression_p): For a function template | |
3420 | specialization, a type is dependent iff any of its template | |
3421 | arguments are. | |
3422 | ||
203484bb PP |
3423 | 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org> |
3424 | ||
3425 | * cp-array-notation.c (cp_expand_cond_array_notations): Return | |
3426 | error_mark_node only if find_rank failed, not if it was | |
3427 | successful. | |
3428 | ||
aa2500e9 PP |
3429 | 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org> |
3430 | ||
3431 | PR c++/68936 | |
3432 | * tree.c (build_min_non_dep_call_vec): Don't retain the | |
3433 | KOENIG_LOOKUP_P flag of the non-dependent expression that's | |
3434 | been built. | |
3435 | (build_min_non_dep_op_overload): Instead, do it here. | |
3436 | ||
e0a575ff JJ |
3437 | 2016-01-15 Jakub Jelinek <jakub@redhat.com> |
3438 | ||
3439 | PR bootstrap/68271 | |
3440 | * parser.h (cp_token): Remove pragma_kind field. Add comment | |
3441 | with number of unused bits. | |
3442 | * parser.c (eof_token): Remove pragma_kind field initializer. | |
3443 | (cp_lexer_get_preprocessor_token): Don't set pragma_kind | |
3444 | field, don't clear CPP_PRAGMA u.value. | |
3445 | (cp_parser_pragma_kind): New function. | |
3446 | (cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel, | |
3447 | cp_parser_omp_construct, cp_parser_initial_pragma, | |
3448 | cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing | |
3449 | pragma_kind field. | |
3450 | ||
56233bd6 JM |
3451 | 2016-01-15 Jason Merrill <jason@redhat.com> |
3452 | ||
c5e3b6fc JM |
3453 | PR c++/68847 |
3454 | * call.c (build_cxx_call): Use fold_non_dependent_expr. | |
3455 | ||
f3255019 JM |
3456 | * typeck2.c (cxx_incomplete_type_diagnostic): Use the location of |
3457 | value. | |
3458 | ||
56233bd6 JM |
3459 | PR c++/69257 |
3460 | * typeck.c (decay_conversion): Don't call mark_rvalue_use for | |
3461 | array/function-to-pointer conversion. Call | |
3462 | complete_type_or_maybe_complain for lvalue-to-rvalue conversion. | |
3463 | * call.c (convert_like_real): Print call context if | |
3464 | decay_conversion errors. | |
3465 | ||
e6d6ec9e TV |
3466 | 2016-01-14 Tom de Vries <tom@codesourcery.com> |
3467 | ||
3468 | PR tree-optimization/68773 | |
3469 | * parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't | |
3470 | set force_output. | |
3471 | ||
a7ccb9e7 JM |
3472 | 2016-01-14 Jason Merrill <jason@redhat.com> |
3473 | ||
3474 | PR c++/69261 | |
3475 | * constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR. | |
3476 | ||
5342156c MP |
3477 | 2016-01-12 Marek Polacek <polacek@redhat.com> |
3478 | ||
3479 | PR c++/68979 | |
3480 | * constexpr.c (cxx_eval_check_shift_p): Use permerror rather than | |
3481 | error_at and adjust the return value. | |
3482 | ||
723033a6 JJ |
3483 | 2016-01-12 Jakub Jelinek <jakub@redhat.com> |
3484 | ||
65364cc5 JJ |
3485 | PR objc++/68511 |
3486 | PR c++/69213 | |
3487 | * cp-gimplify.c (cp_gimplify_expr) <case INIT_EXPR>: Don't return | |
3488 | GS_ERROR whenever seen_error (), only if *expr_p contains | |
3489 | cilk spawn stmt, but cilk_detect_spawn_and_unwrap failed. | |
3490 | ||
723033a6 JJ |
3491 | PR c++/66808 |
3492 | PR c++/69000 | |
3493 | * pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO. | |
3494 | ||
9fc21977 JM |
3495 | 2016-01-11 Jason Merrill <jason@redhat.com> |
3496 | ||
3497 | PR c++/69131 | |
3498 | * method.c (walk_field_subobs): Add dtor_from_ctor parm. | |
3499 | (process_subob_fn): Likewise. Don't consider triviality if true. | |
3500 | (synthesize_method_walk): Pass it. | |
3501 | ||
655441d6 DM |
3502 | 2016-01-11 David Malcolm <dmalcolm@redhat.com> |
3503 | ||
3504 | PR c++/68795 | |
3505 | * parser.c (cp_parser_postfix_expression): Initialize | |
3506 | close_paren_loc to UNKNOWN_LOCATION; only use it if | |
3507 | it has been written to by | |
3508 | cp_parser_parenthesized_expression_list. | |
3509 | (cp_parser_parenthesized_expression_list): Document the behavior | |
3510 | with respect to the CLOSE_PAREN_LOC param. | |
3511 | ||
9cb6bd74 JJ |
3512 | 2016-01-11 Jakub Jelinek <jakub@redhat.com> |
3513 | ||
3514 | PR c++/69211 | |
3515 | * cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR | |
3516 | folded operands have side-effects, but folding changed any of them, | |
3517 | build a new tree with the folded operands instead of returning the | |
3518 | unfolded tree. | |
3519 | ||
73f0dae2 MP |
3520 | 2016-01-09 Marek Polacek <polacek@redhat.com> |
3521 | ||
3522 | PR c++/69113 | |
3523 | * decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set. | |
3524 | ||
c50e614b JJ |
3525 | 2016-01-09 Jakub Jelinek <jakub@redhat.com> |
3526 | ||
3527 | PR c++/69164 | |
3528 | * class.c (layout_class_type): Use copy_node to copy FIELD_DECLs. | |
3529 | ||
fe71aa4e JM |
3530 | 2016-01-08 Jason Merrill <jason@redhat.com> |
3531 | ||
3532 | PR c++/69158 | |
3533 | * constexpr.c (cxx_fold_indirect_ref): Handle array type differing | |
3534 | in completion. | |
3535 | ||
bd8f5bb2 MP |
3536 | 2016-01-08 Marek Polacek <polacek@redhat.com> |
3537 | ||
3538 | PR c++/68449 | |
3539 | * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer. | |
3540 | ||
0795b6f2 JM |
3541 | 2016-01-08 Jason Merrill <jason@redhat.com> |
3542 | ||
550c5f8a JM |
3543 | * constexpr.c (cxx_eval_call_expression): Remove convert_to_void |
3544 | workaround. | |
3545 | ||
45177337 JM |
3546 | PR c++/68983 |
3547 | PR c++/67557 | |
3548 | * cvt.c (convert_to_void): Don't strip a TARGET_EXPR of | |
3549 | TREE_ADDRESSABLE type. | |
3550 | ||
0795b6f2 JM |
3551 | PR c++/68983 |
3552 | PR c++/67557 | |
3553 | * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR. | |
3554 | ||
ce3e43d7 NS |
3555 | 2016-01-05 Nathan Sidwell <nathan@acm.org> |
3556 | ||
3557 | PR c++/58583 | |
3558 | * pt.c (build_non_dependent_expr): Don't try a checking fold when | |
3559 | parsing an nsdmi. | |
3560 | ||
818ab71a | 3561 | 2016-01-04 Jakub Jelinek <jakub@redhat.com> |
5624e564 JJ |
3562 | |
3563 | Update copyright years. | |
ad41bd84 | 3564 | \f |
818ab71a | 3565 | Copyright (C) 2016 Free Software Foundation, Inc. |
ad41bd84 JM |
3566 | |
3567 | Copying and distribution of this file, with or without modification, | |
3568 | are permitted in any medium without royalty provided the copyright | |
3569 | notice and this notice are preserved. |