]>
Commit | Line | Data |
---|---|---|
f8913d47 | 1 | 2011-04-07 Jason Merrill <jason@redhat.com> |
2 | ||
74b7a9bc | 3 | * init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top |
4 | level. | |
5 | (perform_member_init): Not here. | |
6 | * typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special | |
7 | case to templates. | |
8 | (abstract_virtuals_error_sfinae): Remove RESULT_DECL special case. | |
9 | ||
70cac69d | 10 | PR c++/48449 |
11 | * typeck2.c (build_functional_cast): Check complain consistently. | |
12 | Use build_value_init and abstract_virtuals_error_sfinae. | |
13 | (abstract_virtuals_error_sfinae): Split out. | |
14 | * cp-tree.h: Declare it. | |
15 | * init.c (build_new_1): Use it. | |
16 | (build_value_init_noctor): Handle FUNCTION_TYPE. | |
17 | ||
07bbe61e | 18 | * semantics.c (finish_decltype_type): Simplify handling of unknown |
19 | type. | |
20 | ||
c2b6be66 | 21 | * semantics.c (finish_decltype_type): Add complain parm. |
22 | * cp-tree.h: Adjust. | |
23 | * parser.c (cp_parser_decltype): Adjust. | |
24 | * pt.c (tsubst): Adjust. | |
25 | ||
f8913d47 | 26 | PR c++/48450 |
27 | * cvt.c (ocp_convert): Handle converting scoped enum to bool. | |
28 | ||
ff764080 | 29 | 2011-03-31 Jason Merrill <jason@redhat.com> |
30 | ||
7a8a700d | 31 | PR c++/48277 |
32 | * semantics.c (finish_call_expr): Remove assert. | |
33 | ||
b944db44 | 34 | PR c++/48280 |
35 | * method.c (defaultable_fn_check): Templates are not defaultable. | |
36 | ||
ff764080 | 37 | * parser.c (cp_parser_init_declarator): Avoid redundant |
38 | cp_finish_decl for member declarations. | |
39 | ||
49147f1a | 40 | 2011-03-30 Jason Merrill <jason@redhat.com> |
41 | ||
42 | PR c++/48212 | |
43 | * semantics.c (non_const_var_error): Just return if DECL_INITIAL | |
44 | is error_mark_node. | |
45 | ||
33f4d7af | 46 | 2011-03-30 Jason Merrill <jason@redhat.com> |
47 | ||
414b72cf | 48 | PR c++/48369 |
49 | * semantics.c (potential_constant_expression_1): Handle | |
50 | UNORDERED_EXPR and ORDERED_EXPR. | |
51 | ||
4f662622 | 52 | PR c++/48281 |
53 | * semantics.c (finish_compound_literal): Do put static/constant | |
54 | arrays in static variables. | |
55 | ||
cb43d570 | 56 | * call.c (convert_like_real) [ck_list]: Build up the |
57 | initializer_list object directly. | |
58 | * decl.c (build_init_list_var_init): Adjust. | |
59 | ||
33f4d7af | 60 | * call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR. |
61 | * decl.c (reshape_init_array_1): Likewise. | |
62 | ||
b7e0c085 | 63 | 2011-03-29 Jason Merrill <jason@redhat.com> |
64 | ||
14869621 | 65 | PR c++/48265 |
66 | * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure | |
67 | the variable is constant before looking at its initializer. | |
68 | ||
a870dce0 | 69 | PR c++/48319 |
70 | * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR. | |
71 | ||
7fa940a3 | 72 | PR c++/48089 |
73 | * semantics.c (potential_constant_expression_1): Change error about | |
74 | use of *this in constructor into sorry. | |
75 | ||
06c52ffe | 76 | PR c++/48296 |
77 | * decl.c (cp_finish_decl): Defer validation of constexpr member | |
78 | functions. | |
79 | * class.c (finalize_literal_type_property): Validate them here. | |
80 | * semantics.c (is_valid_constexpr_fn): Don't check completeness. | |
81 | ||
b7e0c085 | 82 | * semantics.c (is_valid_constexpr_fn): Specify input location. |
83 | ||
014b7317 | 84 | 2011-03-28 Jason Merrill <jason@redhat.com> |
85 | ||
d74248f7 | 86 | PR c++/48313 |
87 | * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction | |
88 | from overloaded function. | |
89 | ||
59818863 | 90 | Core 1232 |
91 | * call.c (build_array_conv): New. | |
92 | (implicit_conversion): Use it. | |
93 | ||
e76ce35f | 94 | * call.c (reference_binding): Allow direct binding to an array |
95 | rvalue. | |
96 | ||
6bf5e78d | 97 | Core 898 |
98 | * parser.c (cp_parser_compound_statement): Add function_body parm. | |
99 | Complain about non-body compound-stmt in constexpr fn. | |
100 | (cp_parser_primary_expression, cp_parser_statement): Adjust. | |
101 | (cp_parser_implicitly_scoped_statement): Adjust. | |
102 | (cp_parser_function_body, cp_parser_try_block): Adjust. | |
103 | (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust. | |
104 | (cp_parser_objc_try_catch_finally_statement): Adjust. | |
105 | ||
b309fd0a | 106 | Core 898 |
107 | * semantics.c (constexpr_fn_retval): New. Allow using-declaration | |
108 | and using-definition. | |
109 | (register_constexpr_fundef): Call it. | |
110 | ||
014b7317 | 111 | * except.c (build_noexcept_spec): Call cxx_constant_value after |
112 | converting to bool. | |
113 | ||
82715bcd | 114 | 2011-03-25 Kai Tietz <ktietz@redhat.com> |
115 | ||
116 | * lex.c (interface_strcmp): Handle dos-paths. | |
117 | (handle_pragma_implementation): Use filename_cmp instead of | |
118 | strcmp. | |
119 | (in_main_input_context): Likewise. | |
120 | ||
2281da08 | 121 | 2011-03-25 Jason Merrill <jason@redhat.com> |
122 | ||
fd3ee139 | 123 | Core 1135 |
124 | * method.c (defaulted_late_check): Check for exception spec mismatch. | |
125 | (defaultable_fn_check): Allow exception spec and virtual. | |
126 | * class.c (check_for_override): A virtual dtor is non-trivial. | |
127 | ||
2281da08 | 128 | PR c++/48289 |
129 | * pt.c (build_non_dependent_expr): Keep dereferences outside the | |
130 | NON_DEPENDENT_EXPR. | |
131 | ||
309303cf | 132 | 2011-03-25 Kai Tietz <ktietz@redhat.com> |
133 | ||
134 | * decl.c (decls_match): Replace target hook | |
135 | call of comp_type_attributes by version in tree.c file. | |
136 | * search.c (check_final_overrider): Likewise. | |
137 | * typeck.c (structural_comptypes): Likewise. | |
138 | ||
ac86af5d | 139 | 2011-03-21 Kai Tietz <ktietz@redhat.com> |
140 | ||
141 | PR target/12171 | |
ee212425 | 142 | * cxx-pretty-print.c (pp_cxx_ptr_operator): |
143 | Display allowed attributes for function pointer types. | |
144 | * error.c (dump_type_prefix): Likewise. | |
145 | ||
ac86af5d | 146 | * tree.c (cxx_attribute_table): Adjust table. |
147 | ||
b3d27ace | 148 | 2011-03-18 Jason Merrill <jason@redhat.com> |
149 | ||
092ce186 | 150 | PR c++/48162 |
151 | * semantics.c (finish_call_expr): Allow TARGET_EXPR for now. | |
152 | ||
b3d27ace | 153 | PR c++/48118 |
154 | * call.c (build_over_call): Don't skip ck_rvalue. | |
155 | ||
36ed86cd | 156 | 2011-03-17 Jason Merrill <jason@redhat.com> |
157 | ||
ca4646eb | 158 | PR c++/47504 |
159 | * semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let | |
160 | the conversion set TREE_OVERFLOW. | |
161 | ||
dbeb1e25 | 162 | Core 1212 |
163 | * semantics.c (finish_decltype_type): Return T&& for xvalue. | |
164 | * typeck.c (unlowered_expr_type): Preserve cv-quals. | |
165 | ||
36ed86cd | 166 | PR c++/48166 |
167 | * decl.c (revert_static_member_fn): Strip function-cv-quals. | |
168 | ||
c93219d0 | 169 | 2011-03-16 Jason Merrill <jason@redhat.com> |
170 | ||
7c51b530 | 171 | PR c++/48089 |
172 | * semantics.c (potential_constant_expression_1): Don't allow *this | |
173 | in a constructor. | |
174 | (register_constexpr_fundef): Use potential_rvalue_constant_expression. | |
175 | ||
cb5542a1 | 176 | PR c++/47301 |
177 | * decl.c (compute_array_index_type): Don't bother trying to deal | |
178 | with literal classes in ABI v1. | |
179 | ||
f888ae5d | 180 | PR c++/46336 |
181 | * decl.c (duplicate_decls): Return NULL_TREE for clashing | |
182 | C functions. | |
183 | ||
c93219d0 | 184 | PR c++/47570 |
185 | * semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't | |
186 | use the generic binary expression handling. | |
187 | ||
b3145af5 | 188 | 2011-03-16 Diego Novillo <dnovillo@google.com> |
189 | ||
190 | * Make-lang.in (CXX_PARSER_H): New. | |
191 | (cp/parser.o): Add dependency on CXX_PARSER_H. | |
192 | Add dependency on tree-pretty-print.h | |
193 | (cp/cp-lang.o): Add dependency on CXX_PARSER_H. | |
194 | * cp-lang.c: Include parser.h. | |
195 | * parser.c: Include parser.h. | |
196 | (struct cp_token): Add bitfield purged_p. | |
197 | Update all users. | |
198 | Move to parser.h. | |
199 | (CPP_PURGED): Remove. Update all users. | |
200 | (struct cp_lexer): Change field buffer to be a VEC of cp_token. | |
201 | Remove field buffer_length. | |
202 | Update all users. | |
203 | Move to parser.h. | |
204 | (struct tree_check): Move to parser.h. | |
205 | (cp_token_position): Likewise. | |
206 | (struct cp_token_cache): Likewise. | |
207 | (CPP_KEYWORD): Likewise. | |
208 | (CPP_TEMPLATE_ID): Likewise. | |
209 | (CPP_NESTED_NAME_SPECIFIER): Likewise. | |
210 | (N_CP_TTYPES): Likewise. | |
211 | (enum cp_parser_status_kind): Likewise. | |
212 | (struct cp_parser_context): Likewise. | |
213 | (struct cp_default_arg_entry_d): Likewise. | |
214 | (struct cp_unparsed_functions_entry_d): Likewise. | |
215 | (struct cp_parser): Likewise. | |
216 | (cp_lexer_dump_tokens): New. | |
217 | (cp_lexer_debug_tokens): New. | |
218 | (cp_lexer_finished_p): New. | |
219 | (cp_lexer_alloc): Factor out of cp_lexer_new_main. | |
220 | (cp_lexer_new_main): Re-write main lexing loop to push | |
221 | tokens into the new VEC buffer. | |
222 | (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens. | |
223 | Do not abort if the token type is not recognized, just print | |
224 | its code. | |
225 | * parser.h: New file. | |
226 | * config-lang.in (gtfiles): Add cp/parser.h. | |
227 | ||
ab789b30 | 228 | 2011-03-16 Jason Merrill <jason@redhat.com> |
229 | ||
988ff48d | 230 | Core 1148 |
231 | * typeck.c (check_return_expr): Fix conditions for setting | |
232 | LOOKUP_PREFER_RVALUE. | |
233 | ||
dbe7c53a | 234 | * call.c (build_over_call): Remove require_complete_type_sfinae call. |
235 | ||
ab789b30 | 236 | PR c++/48132 |
237 | * decl.c (check_array_designated_initializer): Allow integer index. | |
238 | (reshape_init_array_1): Set index on the elements. | |
239 | ||
d823627d | 240 | 2011-03-16 Jason Merrill <jason@redhat.com> |
241 | ||
13f56139 | 242 | PR c++/48113 |
243 | * typeck.c (convert_for_initialization): Use | |
244 | perform_implicit_conversion_flags. | |
245 | * call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set | |
246 | rvaluedness_matches_p on ck_rvalue. | |
247 | (convert_like_real) [ck_rvalue]: And restore it here. | |
248 | ||
d823627d | 249 | PR c++/48115 |
250 | * call.c (convert_arg_to_ellipsis): Handle incomplete type. | |
251 | ||
b9f77b95 | 252 | 2011-03-16 Jason Merrill <jason@redhat.com> |
253 | ||
1f595a02 | 254 | * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't |
255 | committed to this tentative parse. | |
256 | ||
f5126e46 | 257 | PR c++/47999 |
258 | * semantics.c (finish_call_expr): Preserve reference semantics | |
259 | in templates. | |
260 | ||
b9f77b95 | 261 | * call.c (convert_default_arg): Use LOOKUP_IMPLICIT. |
262 | ||
4143d08b | 263 | 2011-03-16 Jakub Jelinek <jakub@redhat.com> |
264 | ||
265 | * cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if | |
266 | DECL_LANG_SPECIFIC is NULL. | |
267 | ||
aafa0794 | 268 | 2011-03-15 Jason Merrill <jason@redhat.com> |
269 | ||
15b872c1 | 270 | Core 1074 |
271 | * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't | |
272 | check value_dependent_expression_p on the operand. | |
273 | ||
54cf6eed | 274 | * semantics.c (push_cx_call_context): Return bool. |
275 | (cxx_eval_call_expression): Handle excess depth. | |
276 | ||
aafa0794 | 277 | Core 1191 |
278 | * method.c (synthesized_method_walk): Cleanups don't affect the | |
279 | triviality of a constructor, but do affect deletion and exception | |
280 | specification. | |
281 | ||
0b18f5f8 | 282 | 2011-03-15 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com> |
283 | ||
284 | * decl2.c (cp_check_const_attributes): New. | |
285 | (cplus_decl_attributes): Call cp_check_const_attributes. | |
286 | ||
4439eed9 | 287 | 2011-03-15 Jason Merrill <jason@redhat.com> |
288 | ||
289 | PR c++/34758 | |
290 | * call.c (convert_default_arg): Use DECL_ORIGIN of fn. Check for | |
291 | recursion first. | |
292 | (push_defarg_context, pop_defarg_context): New. | |
293 | * parser.c (cp_parser_late_parsing_default_args): Use them. | |
294 | * cp-tree.h: Declare them. | |
295 | ||
d738e512 | 296 | 2011-03-11 Dodji Seketeli <dodji@redhat.com> |
297 | ||
298 | * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of | |
299 | the argument of the indirection operator should not be dependent. | |
300 | Fix the comment. | |
301 | ||
f2e139bf | 302 | 2011-03-11 Jason Merrill <jason@redhat.com> |
303 | ||
3b7596a0 | 304 | PR c++/47125 |
305 | * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error. | |
306 | ||
1961ca68 | 307 | PR c++/47144 |
308 | * parser.c (cp_parser_template_type_arg): Set | |
309 | type_definition_forbidden_message. | |
310 | ||
f2e139bf | 311 | PR c++/47808 |
312 | * decl.c (compute_array_index_type): Discard folding | |
313 | if it didn't produce a constant. | |
314 | ||
f283d77f | 315 | 2011-03-11 Jakub Jelinek <jakub@redhat.com> |
316 | ||
317 | PR c++/48035 | |
318 | * init.c (build_zero_init_1): Extracted from build_zero_init. | |
319 | Add FIELD_SIZE argument, if non-NULL and field bit_position | |
320 | as not smaller than that, don't add that field's initializer. | |
321 | Pass DECL_SIZE as last argument to build_zero_init_1 | |
322 | for DECL_FIELD_IS_BASE fields. | |
323 | (build_zero_init): Use build_zero_init_1. | |
324 | ||
3504ce7d | 325 | 2011-03-10 Jason Merrill <jason@redhat.com> |
326 | ||
47c2386f | 327 | PR c++/48029 |
328 | * pt.c (iterative_hash_template_arg): Remove special case for | |
329 | ARRAY_TYPE. | |
330 | ||
3504ce7d | 331 | PR c++/47198 |
332 | * parser.c (cp_parser_single_declaration): Just return if | |
333 | cp_parser_parse_and_diagnose_invalid_type_name complained. | |
334 | ||
e030f9cc | 335 | 2011-03-09 Jason Merrill <jason@redhat.com> |
336 | ||
337 | PR c++/44629 | |
338 | * pt.c (unify): An unresolved overload is a nondeduced context. | |
339 | ||
32578a98 | 340 | 2011-03-09 Martin Jambor <mjambor@suse.cz> |
341 | ||
342 | PR tree-optimization/47714 | |
343 | * method.c (use_thunk): Clear addressable flag of thunk arguments. | |
344 | ||
f966df8a | 345 | 2011-03-08 Dodji Seketeli <dodji@redhat.com> |
346 | ||
347 | PR c++/47705 | |
348 | * pt.c (convert_nontype_argument): Only call decay_conversion on | |
349 | arrays. | |
350 | ||
43d97a5b | 351 | 2011-03-08 Jason Merrill <jason@redhat.com> |
352 | ||
99fddf6e | 353 | PR c++/47488 |
354 | * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry. | |
355 | ||
ac4c43c6 | 356 | PR c++/47705 |
357 | * pt.c (convert_nontype_argument): Don't crash on non-pointer | |
358 | argument to pointer parameter. | |
359 | ||
43d97a5b | 360 | PR c++/45651 |
361 | * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on | |
362 | !TREE_PUBLIC decls. | |
363 | ||
93306221 | 364 | 2011-03-08 Dodji Seketeli <dodji@redhat.com> |
365 | ||
7a76e05f | 366 | PR c++/47957 |
93306221 | 367 | * name-lookup.c (binding_to_template_parms_of_scope_p): Only |
368 | consider scopes of primary template definitions. Adjust comments. | |
369 | ||
80e93d60 | 370 | 2011-03-07 Jason Merrill <jason@redhat.com> |
371 | ||
63d0c62f | 372 | PR c++/48003 |
373 | * pt.c (convert_nontype_argument): Fix -fpermissive allowing | |
374 | integer overflow. | |
375 | * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW. | |
376 | ||
eed3fb17 | 377 | PR c++/48015 |
378 | * init.c (constant_value_1): Always require init to be TREE_CONSTANT. | |
379 | ||
80e93d60 | 380 | PR c++/48008 |
381 | * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here. | |
382 | (write_CV_qualifiers_for_type): Not here. | |
383 | ||
e5c4da6f | 384 | 2011-03-06 Joseph Myers <joseph@codesourcery.com> |
385 | ||
386 | * lang-specs.h: Match -save-temps* instead of -save-temps. | |
387 | ||
87d553db | 388 | 2011-03-05 Jason Merrill <jason@redhat.com> |
389 | ||
390 | * mangle.c (write_expression): Change ABI v6 to v5. | |
391 | (write_type): Likewise. | |
392 | ||
aa29908f | 393 | 2011-03-04 Jan Hubicka <jh@suse.cz> |
394 | ||
395 | PR lto/47497 | |
396 | * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias | |
397 | and cgraph_add_thunk. | |
398 | * method.c (make_alias_for_thunk, use_thunk): Likewise. | |
399 | * mangle.c (mangle_decl): Likewise. | |
400 | ||
9e7ac8eb | 401 | 2011-03-04 Jason Merrill <jason@redhat.com> |
402 | ||
e8bc7223 | 403 | PR c++/47971 |
404 | * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type. | |
405 | (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING. | |
406 | ||
9e7ac8eb | 407 | PR c++/46220 |
408 | * search.c (check_final_overrider): Allow pointer to same incomplete | |
409 | class type with different cv-quals. | |
410 | ||
4c377c6e | 411 | 2011-03-03 Paolo Carlini <paolo.carlini@oracle.com> |
412 | ||
413 | PR c++/47974 | |
414 | * pt.c (tsubst_template_args): Check argument t for error_mark_node. | |
415 | ||
c33d97f1 | 416 | 2011-03-03 Jason Merrill <jason@redhat.com> |
417 | ||
418 | PR c++/47950 | |
419 | * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT. | |
420 | ||
d5e10271 | 421 | 2011-03-02 Jason Merrill <jason@redhat.com> |
422 | ||
5fce1125 | 423 | PR c++/47950 |
424 | * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here. | |
425 | ||
d5e10271 | 426 | PR c++/47774 |
427 | * tree.c (build_vec_init_elt): Split out from... | |
428 | (build_vec_init_expr): ...here. | |
429 | (diagnose_non_constexpr_vec_init): New fn. | |
430 | * semantics.c (potential_constant_expression_1): Use it. | |
431 | * cp-tree.h: Declare it. | |
432 | ||
c4d7c2ba | 433 | 2011-03-01 Jason Merrill <jason@redhat.com> |
434 | ||
50bd405f | 435 | PR c++/46159 |
436 | * parser.c (cp_parser_primary_expression): Don't warn about a | |
437 | failed tentative parse. | |
438 | ||
a6789aad | 439 | PR c++/47200 |
440 | * semantics.c (cxx_bind_parameters_in_call): Don't call | |
441 | adjust_temp_type on non-constant args. | |
442 | ||
96c42edf | 443 | PR c++/47851 |
444 | * call.c (standard_conversion): Provide requested cv-quals on | |
445 | class rvalue conversion. | |
446 | ||
c4d7c2ba | 447 | PR c++/46282 |
448 | * decl2.c (grokbitfield): Handle type-dependent width. | |
449 | ||
ebc37afd | 450 | 2011-02-28 Jason Merrill <jason@redhat.com> |
451 | ||
452 | PR c++/47873 | |
453 | * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P | |
454 | after checking for a non-thunk. | |
455 | ||
b9c67e42 | 456 | 2011-02-26 Jason Merrill <jason@redhat.com> |
457 | ||
687d76c8 | 458 | PR c++/47904 |
459 | * tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL. | |
460 | * pt.c (iterative_hash_template_arg): And hash it. | |
461 | ||
b9c67e42 | 462 | PR c++/47897 |
463 | * semantics.c (non_const_var_error): Split out from... | |
464 | (cxx_eval_constant_expression): ...here. | |
465 | (potential_constant_expression_1) [VAR_DECL]: Use it. | |
466 | Allow dependent variables. | |
467 | ||
cfa61f84 | 468 | 2011-02-24 Jason Merrill <jason@redhat.com> |
469 | ||
470 | * parser.c (cp_parser_constant_expression): Set | |
471 | non_integral_constant_expression correctly for C++0x too. | |
472 | (cp_parser_static_assert): Allow non-constant expression. | |
473 | (cp_parser_direct_declarator): Expect non_constant_p to be set | |
474 | properly for C++0x. | |
475 | * pt.c (value_dependent_expression_p): Handle TYPEID_EXPR. | |
476 | * semantics.c (maybe_constant_value): Check type_unknown_p too. | |
477 | (potential_rvalue_constant_expression): New. | |
478 | (require_potential_rvalue_constant_expression): New. | |
479 | ||
4d7aaf8e | 480 | 2011-02-23 Jason Merrill <jason@redhat.com> |
481 | ||
482 | * cp-tree.h (DECL_PARM_LEVEL): New. | |
483 | (struct lang_decl_parm): Add level field. | |
484 | * name-lookup.c (function_parm_depth): New fn. | |
485 | * name-lookup.h: Declare it. | |
486 | * parser.c (cp_parser_parameter_declaration_list): Use it. | |
487 | * mangle.c (struct globals): Add parm_depth field. | |
488 | (write_bare_function_type): Adjust it. | |
489 | (write_expression): Include the level delta in PARM_DECL mangling | |
490 | for abi >= 6. | |
491 | ||
492 | * semantics.c (finish_decltype_type): Remove shortcut for decltype | |
493 | of id-expression. | |
494 | * mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6. | |
495 | ||
a0499cf2 | 496 | 2011-02-23 Nathan Froyd <froydnj@codesourcery.com> |
497 | ||
498 | PR c++/46868 | |
499 | * parser.c (cp_parser_class_specifier): Require a closing brace | |
500 | to attempt error recovery. | |
501 | ||
d3cdd2f5 | 502 | 2011-02-23 Jakub Jelinek <jakub@redhat.com> |
503 | ||
504 | PR c++/47833 | |
505 | * pt.c (struct pending_template): Add chain_next GTY option. | |
506 | * decl.c (struct named_label_use_entry): Likewise. | |
507 | ||
80346df5 | 508 | 2011-02-22 Paolo Carlini <paolo.carlini@oracle.com> |
509 | ||
510 | PR c++/47242 | |
511 | * semantics.c (build_lambda_object): Bail out if a field is | |
512 | error_mark_node. | |
513 | ||
052906ac | 514 | 2011-02-22 Dodji Seketeli <dodji@redhat.com> |
515 | ||
516 | PR c++/47666 | |
517 | * class.c (dfs_declare_virt_assop_and_dtor) | |
518 | (declare_virt_assop_and_dtor): New static functions. | |
519 | (add_implicitly_declared_members): Use | |
520 | declare_virt_assop_and_dtor. | |
521 | ||
43b367c6 | 522 | 2011-02-21 Jason Merrill <jason@redhat.com> |
523 | ||
524 | PR c++/47207 | |
525 | * decl2.c (decl_constant_var_p): A constexpr var needs an | |
526 | initializer to be constant. | |
527 | * semantics.c (cxx_eval_constant_expression): Complain about | |
528 | constexpr var used in its own initializer. | |
529 | * call.c (set_up_extended_ref_temp): Set | |
530 | DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too. | |
531 | ||
611b6173 | 532 | 2011-02-20 Jason Merrill <jason@redhat.com> |
533 | ||
3d87e7a2 | 534 | PR c++/47199 |
535 | * semantics.c (cxx_eval_call_expression): Call | |
536 | cxx_eval_constant_expression in trivial shortcut. | |
537 | ||
197aaecb | 538 | PR c++/46831 |
539 | * call.c (convert_class_to_reference): Don't try to set up a | |
540 | second conv sequence for non-viable candidates. | |
541 | ||
bbd7578e | 542 | PR c++/47703 |
543 | * error.c (location_of): Handle non-tagged types. | |
544 | ||
611b6173 | 545 | PR c++/46472 |
546 | * method.c (process_subob_fn): Instantiate constexpr templates. | |
547 | * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P. | |
548 | ||
02026a8e | 549 | 2011-02-20 Dodji Seketeli <dodji@redhat.com> |
550 | ||
551 | PR c++/46394 | |
552 | * pt.c (tsubst_pack_expansion): do not use | |
553 | cp_tree_equal/same_type_p to detect an expansion of a parameter | |
554 | pack. | |
555 | ||
29379c7b | 556 | 2011-02-19 Jason Merrill <jason@redhat.com> |
557 | ||
558 | PR c++/47503 | |
559 | * semantics.c (cxx_eval_call_expression): Shortcut trivial copy. | |
560 | ||
6e2ac691 | 561 | 2011-02-18 Paolo Carlini <paolo.carlini@oracle.com> |
562 | ||
563 | PR c++/47795 | |
564 | * semantics.c (finish_non_static_data_member): Early return if | |
565 | object is error_mark_node. | |
566 | ||
1d4070b9 | 567 | 2011-02-18 Dodji Seketeli <dodji@redhat.com> |
568 | ||
569 | PR c++/47208 | |
570 | * pt.c (do_auto_deduction): Do not mention error_mark_node in | |
571 | diagnostics. | |
572 | * semantics.c (finish_id_expression): Do not pass erroneous decl | |
573 | to decl_constant_var_p. | |
574 | ||
3d37a176 | 575 | 2011-02-17 Jakub Jelinek <jakub@redhat.com> |
576 | ||
577 | PR c++/47783 | |
578 | * cvt.c (convert_from_reference): Call mark_exp_read. | |
579 | ||
daf9237f | 580 | 2011-02-11 Dodji Seketeli <dodji@redhat.com> |
581 | ||
582 | PR c++/47172 | |
583 | * pt.c (finish_call_expr): Consider a call expression that has a | |
584 | dependent "this" pointer as being dependent. Add comments. | |
585 | (dependent_type_p, type_dependent_expression_p): Update comments. | |
586 | ||
53c3beff | 587 | 2011-02-16 Dodji Seketeli <dodji@redhat.com> |
588 | ||
589 | PR c++/47326 | |
590 | * pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack | |
591 | expansion arguments are not evaluated. | |
592 | ||
54c771af | 593 | 2011-02-16 Jakub Jelinek <jakub@redhat.com> |
594 | ||
595 | PR c++/47704 | |
596 | * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5 | |
597 | instead of TYPE_LANG_FLAG_3. | |
598 | * pt.c (lookup_template_class): Copy over | |
599 | ENUM_FIXED_UNDERLYING_TYPE_P. | |
600 | ||
92b327d3 | 601 | 2011-02-15 Jason Merrill <jason@redhat.com> |
602 | ||
603 | PR c++/46807 | |
604 | * method.c (synthesized_method_walk): Always exit early for | |
605 | trivial fn in C++98 mode. | |
606 | ||
9aad9f90 | 607 | 2011-02-14 Jason Merrill <jason@redhat.com> |
608 | ||
609 | PR c++/47482 | |
610 | * parser.c (cp_parser_enumerator_definition): Call | |
611 | fold_non_dependent_expr. | |
612 | ||
d1d697ea | 613 | 2011-02-09 Jason Merrill <jason@redhat.com> |
614 | ||
d31e4592 | 615 | * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel. |
616 | * semantics.c (finish_fname): Only return the name if we're in | |
617 | a function. | |
618 | ||
3d40bfb8 | 619 | * decl.c (build_enumerator): Don't perform integral promotions on |
620 | non-integral constants. | |
621 | ||
527facbb | 622 | * cvt.c (convert_to_void): Handle null op1. |
623 | ||
d438565a | 624 | * class.c (type_has_constexpr_default_constructor): Make sure the |
625 | caller stripped an enclosing array. | |
626 | * init.c (perform_member_init): Strip arrays before calling it. | |
627 | ||
d1d697ea | 628 | PR c++/47511 |
629 | * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL. | |
630 | ||
89caf970 | 631 | 2011-02-03 Dodji Seketeli <dodji@redhat.com> |
632 | ||
633 | PR c++/47398 | |
634 | * tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of | |
635 | template parameters in account. | |
636 | ||
fad3f658 | 637 | 2011-02-03 Nathan Froyd <froydnj@codesourcery.com> |
638 | ||
639 | PR c++/46890 | |
640 | * parser.c (cp_parser_class_specifier): Fix setting of | |
641 | want_semicolon. | |
642 | ||
e39e78dc | 643 | 2011-01-31 Jakub Jelinek <jakub@redhat.com> |
644 | ||
645 | PR c++/47416 | |
646 | * semantics.c (build_data_member_initialization): Handle | |
647 | STATEMENT_LIST always instead of just for CLEANUP_BODY. | |
648 | ||
e6937b3a | 649 | 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
650 | ||
651 | * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use | |
652 | LD_STATIC_OPTION, LD_DYNAMIC_OPTION. | |
653 | ||
71c5bb94 | 654 | 2011-01-29 Dodji Seketeli <dodji@redhat.com> |
655 | ||
656 | PR c++/47311 | |
657 | * cp-tree.h (fixup_template_parms): Declare. | |
658 | * pt.c (end_template_parm_list): Do not fixup template parms here. | |
659 | (fixup_template_parms): Remove static. Fix typo in the | |
660 | comments. Remove useless code statement. | |
661 | (fixup_template_parm): For a template template parameter, fixup | |
662 | its attributes before fixing up its type. | |
663 | * parser.c | |
664 | (cp_parser_template_declaration_after_export): After parsing | |
665 | template parameters fixup their types. | |
666 | ||
2dac7012 | 667 | 2011-01-26 Jakub Jelinek <jakub@redhat.com> |
668 | ||
669 | PR c++/47476 | |
670 | * semantics.c (potential_constant_expression_1): Handle | |
671 | TRUTH_XOR_EXPR. | |
672 | ||
0675168d | 673 | 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com> |
674 | ||
e8911163 | 675 | PR c++/43601 |
0675168d | 676 | * semantics.c (expand_or_defer_fn_1): Handle it. |
677 | * decl2.c (decl_needed_p): Likewise. | |
678 | ||
28393b8e | 679 | 2011-01-21 Jason Merrill <jason@redhat.com> |
680 | ||
681 | PR c++/47041 | |
682 | * semantics.c (build_constexpr_constructor_member_initializers): | |
683 | Handle trivial copy. | |
684 | ||
1bf4f2e0 | 685 | 2011-01-21 Jakub Jelinek <jakub@redhat.com> |
686 | ||
687 | PR c++/47388 | |
688 | * semantics.c (begin_for_stmt): If -fno-for-scope, don't | |
689 | assume init must be NULL if scope is NULL. | |
690 | (begin_range_for_stmt): Likewise. | |
691 | ||
bff898fb | 692 | 2011-01-21 Jason Merrill <jason@redhat.com> |
693 | ||
b2188d7e | 694 | PR c++/46552 |
695 | * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF. | |
696 | ||
bff898fb | 697 | PR c++/46977 |
698 | * semantics.c (potential_constant_expression_1): Split out from | |
699 | potential_constant_expression. Add want_rval parm. Handle | |
700 | template expression forms. Don't enforce restriction on address | |
701 | of automatic variable here. Add a couple of diagnostics that | |
702 | had been missing. | |
703 | (require_potential_constant_expression): New entry point. | |
704 | (build_data_member_initialization, register_constexpr_fundef): Adjust. | |
705 | (maybe_constant_value): Check potential_constant_expression. | |
706 | * pt.c (fold_non_dependent_expr_sfinae): Likewise. | |
707 | * tree.c (build_vec_init_expr): Adjust. | |
708 | ||
808ccfc7 | 709 | 2011-01-19 Jakub Jelinek <jakub@redhat.com> |
710 | ||
711 | PR c++/47303 | |
712 | * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC | |
713 | or DECL_EXTERNAL. | |
714 | ||
05d560e7 | 715 | 2011-01-17 Jason Merrill <jason@redhat.com> |
716 | ||
717 | PR c++/47067 | |
718 | * semantics.c (base_field_constructor_elt): New fn. | |
719 | (cxx_eval_bare_aggregate): Use it. | |
720 | (build_data_member_initialization): Leave COMPONENT_REF for | |
721 | vfield inits. | |
722 | ||
bfea5ee6 | 723 | 2011-01-14 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com> |
724 | ||
725 | * parser.c (cp_parser_range_for): Remove the "unused variable" warning | |
726 | workaround. | |
727 | ||
5c0907f1 | 728 | 2011-01-15 Giovanni Funchal <gafunchal@gmail.com> |
729 | Jonathan Wakely <jwakely.gcc@gmail.com> | |
730 | ||
731 | PR c++/33558 | |
732 | * decl.c (grokdeclarator): Reject mutable reference members. | |
733 | ||
b3b231a4 | 734 | 2011-01-14 Jason Merrill <jason@redhat.com> |
735 | ||
13f140e8 | 736 | PR c++/47289 |
737 | * pt.c (coerce_template_parms): Fix error recovery. | |
738 | ||
2732b026 | 739 | PR c++/46903 |
740 | * typeck2.c (check_narrowing): Only check arithmetic types. | |
741 | ||
b3b231a4 | 742 | PR c++/46688 |
743 | * tree.c (build_vec_init_expr): Handle flexible array | |
744 | properly. | |
745 | ||
de0e5a52 | 746 | 2011-01-13 Kai Tietz <kai.tietz@onevision.com> |
747 | ||
748 | PR c++/47213 | |
749 | * cp-tree.h (CLASSTYPE_VISIBILITY): Use | |
750 | TYPE_MAIN_DECL instead of TYPE_NAME. | |
751 | (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise. | |
752 | * decl2.c (determine_visibility): Add check | |
753 | of CLASS_TYPE_P for underlying_type. | |
754 | ||
fa7d5870 | 755 | 2011-01-12 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com> |
756 | ||
757 | * cp-tree.h (begin_for_scope): New prototype. | |
758 | (begin_for_stmt): Update prototype. | |
759 | (begin_range_for_stmt): Update prototype. | |
760 | * init.c (build_vec_init): Update call to begin_for_stmt. | |
761 | * parser.c (cp_parser_for): New. | |
762 | (cp_parser_c_for): Add three new parameters. | |
763 | (cp_parser_range_for): Likewise. Most parsing code removed. | |
764 | (cp_parser_iteration_statement): Call cp_parser_for instead of | |
765 | cp_parser_c_for and cp_parser_range_for. | |
766 | (cp_parser_for_init_statement): Add new parameter and return type. | |
767 | (cp_parser_block_declaration): Update call to | |
768 | cp_parser_simple_declaration. | |
769 | (cp_parser_simple_declaration): Add new parameter. | |
770 | Update call to cp_parser_init_declarator. | |
771 | (cp_parser_init_declarator): Add new parameter. | |
772 | * pt.c (tsubst_expr): Update call to begin_for_stmt. | |
773 | * semantics.c (begin_for_scope): New. | |
774 | (begin_for_stmt): Add two new parameters. | |
775 | (begin_range_for_stmt): Likewise. | |
776 | ||
ffbb3d61 | 777 | 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com> |
778 | ||
779 | * parser.c (cp_parser_objc_at_property_declaration): Improved | |
780 | error message. | |
781 | ||
05b89780 | 782 | 2011-01-11 Dodji Seketeli <dodji@redhat.com> |
783 | ||
784 | PR debug/46955 | |
785 | * cp-lang.c (get_template_innermost_arguments_folded) | |
786 | (get_template_argument_pack_elems_folded) | |
787 | (template_arg_needs_folding, fold_cplus_constants): New static | |
788 | functions. | |
789 | (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to | |
790 | get_template_innermost_arguments_folded. | |
791 | (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to | |
792 | get_template_argument_pack_elems_folded. | |
793 | ||
4b0e3c85 | 794 | 2011-01-11 Jason Merrill <jason@redhat.com> |
795 | ||
140b70da | 796 | PR c++/46658 |
797 | * init.c (build_new_1): Handle value-init in templates differently. | |
798 | ||
4b0e3c85 | 799 | PR c++/45520 |
800 | * tree.c (maybe_dummy_object): Check current_class_ref against | |
801 | context, not current_class_type. | |
802 | ||
14a3bc63 | 803 | 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com> |
804 | ||
805 | PR objc/47078 | |
806 | * parser.c (cp_parser_objc_typename): If the type is unknown, for | |
807 | error recovery purposes behave as if it was not specified so that | |
808 | the default type is used. | |
809 | ||
98e9a2ed | 810 | 2011-01-07 Jakub Jelinek <jakub@redhat.com> |
811 | ||
812 | PR c++/47022 | |
813 | * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy | |
814 | for the second build_x_va_arg argument. | |
815 | ||
fdd84b77 | 816 | 2011-01-05 Tom Tromey <tromey@redhat.com> |
817 | ||
818 | * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error. | |
819 | (lvalue_or_else): Likewise. | |
820 | ||
99a71bbc | 821 | 2011-01-01 Kai Tietz <kai.tietz@onevision.com> |
822 | ||
823 | PR target/38662 | |
824 | * tree.c (cxx_type_hash_eq): | |
825 | Allow METHOD_TYPE, too. | |
826 | ||
7dfbd804 | 827 | \f |
cd8b0daa | 828 | Copyright (C) 2011 Free Software Foundation, Inc. |
7dfbd804 | 829 | |
830 | Copying and distribution of this file, with or without modification, | |
831 | are permitted in any medium without royalty provided the copyright | |
832 | notice and this notice are preserved. |