]>
Commit | Line | Data |
---|---|---|
c5adc427 JM |
1 | 2009-05-27 Jason Merrill <jason@redhat.com> |
2 | ||
3 | * call.c (implicit_conversion): Handle conversion from | |
4 | initializer-list to scalar. | |
5 | (convert_like_real): Likewise. Avoid crashing on list | |
6 | initialization with bad conversions. | |
7 | (can_convert): Use LOOKUP_EXPLICIT. | |
8 | (can_convert_arg_bad): Add flags parm. | |
9 | * cp-tree.h: Adjust. | |
10 | * typeck.c (convert_for_assignment): Pass flags. | |
11 | ||
c607156f ILT |
12 | 2009-05-27 Ian Lance Taylor <iant@google.com> |
13 | ||
14 | * Make-lang.in (g++$(exeext)): Change $(COMPILER) to $(LINKER). | |
15 | (cc1plus-dummy$(exeext), cc1plus$(exeext)): Likewise. | |
16 | ||
7980bfb8 ILT |
17 | 2009-05-26 Ian Lance Taylor <iant@google.com> |
18 | ||
19 | * Make-lang.in (g++spec.o): Use $(COMPILER). | |
20 | (g++$(exeext), cc1plus-dummy$(exeext)): Likewise. | |
21 | (cc1plus$(exeext)): Likewise. | |
22 | ||
2eb25c98 DS |
23 | 2009-05-26 Dodji Seketeli <dodji@redhat.com> |
24 | ||
25 | PR c++/40007 | |
26 | * cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): Remove this accessor. | |
27 | (TI_TYPEDEFS_NEEDING_ACCESS_CHECKING): New accessor. | |
28 | (get_types_needing_access_check): Declare new entry point. | |
29 | * pt.c (append_type_to_template_for_access_check_1, | |
30 | get_types_needing_access_check): New functions. | |
31 | (perform_typedefs_access_check): Accept FUNCTION_DECLs and | |
32 | RECORD_TYPEs rather than TEMPLATE_DECLs. Use the new | |
33 | get_types_needing_access_check, no more | |
34 | MEMBER_TYPES_NEEDING_ACCESS_CHECK. | |
35 | (instantiate_class_template): Set input_location to the source | |
36 | location of the most specialized template definition. | |
37 | Perform access check using the RECORD_TYPE of the template, not its | |
38 | associated most generic TEMPLATE_DECL. | |
39 | (append_type_to_template_for_access_check): Augment function | |
40 | comments. Use the new get_types_needing_access_check, not | |
41 | MEMBER_TYPE_NEEDING_ACCESS_CHECK. Use the new | |
42 | append_type_to_template_for_access_check_1 subroutine. | |
43 | ||
550a799d JM |
44 | 2009-05-22 Jason Merrill <jason@redhat.com> |
45 | ||
46 | PR c++/38064 | |
47 | * typeck.c (cp_build_binary_op): Allow ENUMERAL_TYPE in | |
48 | arithmetic comparisons. | |
49 | (cp_common_type): Handle scoped enums. | |
50 | ||
51 | * call.c (promoted_arithmetic_type_p): Don't use INTEGRAL_TYPE_P. | |
52 | (add_builtin_candidate, add_builtin_candidates): Likewise. | |
53 | (convert_like_real): Likewise. | |
54 | * class.c (check_bitfield_decl): Likewise. | |
55 | * decl.c (check_static_variable_definition): Likewise. | |
56 | (compute_array_index_type): Likewise. | |
57 | * decl2.c (grokbitfield): Likewise. | |
58 | * init.c (build_new_1): Likewise. | |
59 | * pt.c (convert_nontype_argument): Likewise. | |
60 | (current_instantiation): Likewise. | |
61 | * tree.c (pod_type_p): Likewise. | |
62 | * typeck.c (build_static_cast_1): Likewise. | |
63 | (build_reinterpret_cast_1): Likewise. | |
64 | ||
4d7a65ea RG |
65 | 2009-05-22 Richard Guenther <rguenther@suse.de> |
66 | ||
67 | PR middle-end/38964 | |
68 | * init.c (avoid_placement_new_aliasing): Remove. | |
69 | (build_new_1): Do not call it. | |
70 | ||
fe2978fb MM |
71 | 2009-05-22 Mark Mitchell <mark@codesourcery.com> |
72 | ||
73 | * decl2.c (decl_needed_p): Consider dllexport'd functions needed. | |
74 | * semantics.c (expand_or_defer_fn): Similarly. | |
75 | ||
c166b898 ILT |
76 | 2009-05-20 Ian Lance Taylor <iant@google.com> |
77 | ||
78 | * parser.c (cp_parser_postfix_expression): Change args to a vec. | |
79 | Release it when done. | |
80 | (tree_vector): Define typedef. Define VEC functions. | |
81 | (cp_parser_parenthesized_expression_list): Change return type to | |
82 | vec. Change all callers. | |
83 | (cp_parser_new_expression): Change placement and initializer to | |
84 | vecs. Release them when done. | |
85 | (cp_parser_new_placement): Change return type to vec. Change all | |
86 | callers. | |
87 | (cp_parser_new_initializer): Likewise. | |
88 | * typeck.c (build_function_call_vec): Just call | |
89 | cp_build_function_call_vec. | |
90 | (cp_build_function_call): Just build a vec and call | |
91 | cp_build_function_call_vec. | |
92 | (cp_build_function_call_vec): New function based on old | |
93 | cp_build_function_call. | |
94 | (convert_arguments): Remove nargs and argarray parameters. Change | |
95 | values to a vec. Change caller. | |
96 | (build_x_compound_expr_from_vec): New function. | |
97 | (cp_build_modify_expr): Build vec to pass to | |
98 | build_special_member_call. | |
99 | * call.c (struct z_candidate): Add first_arg field. Change args | |
100 | field to vec. | |
101 | (convert_class_to_reference): Handle first argument separately. | |
102 | (add_candidate): Add first_arg parameter. Change args parameter | |
103 | to vec. Change all callers. | |
104 | (add_function_candidate, add_conv_candidate): Likewise. | |
105 | (add_template_candidate_real, add_template_candidate): Likewise. | |
106 | (add_template_conv_candidate): Likewise. | |
107 | (build_user_type_conversion_1): Handle first argument separately. | |
108 | (resolve_args): Change return type and parameter type to vecs. | |
109 | Change all callers. | |
110 | (perform_overload_resolution): Change args parameter to vec. | |
111 | Change all callers. | |
112 | (build_new_function_call, build_operator_new_call): Likewise. | |
113 | (add_candidates): Likewise. | |
114 | (build_op_call): New globally visible function, built from and | |
115 | replacing static function build_object_call. | |
116 | (build_new_op): Don't handle CALL_EXPR. Build vec, not tree_list, | |
117 | of arguments. | |
118 | (build_op_delete_call): Build vec to pass to | |
119 | cp_build_function_call_vec. | |
120 | (build_temp): Build vec to pass to build_special_member_call. | |
121 | (convert_like_real): Likewise. | |
122 | (perform_direct_initialization_if_possible): Likewise. | |
123 | (build_over_call): Handle first_arg field. Use build_call_array | |
124 | rather than build_call_list. | |
125 | (build_special_member_call): Change args parameter to vec. Change | |
126 | all callers. | |
127 | (build_new_method_call): Likewise. | |
128 | * init.c (expand_default_init): Change parms to vec. | |
129 | (build_raw_new_expr): Change placement and init to vecs. Change | |
130 | all callers. | |
131 | (build_new_1, build_new): Likewise. | |
132 | * class.c (resolve_address_of_overloaded_function): Build array to | |
133 | pass to fn_type_unification. | |
134 | * pt.c (tsubst_copy_and_build): For NEW_EXPR build vecs to pass to | |
135 | build_new. For CALL_EXPR create a vec rather than a tree_list; | |
136 | expand a pack if necessary. | |
137 | (fn_type_unification): Change args parameter to const tree *. Add | |
138 | nargs parameter. Change all callers. | |
139 | (type_unification_real): Likewise. | |
140 | (unify): Build array to pass to type_unification_real. | |
141 | (get_bindings): Build array to pass to fn_type_unification. | |
142 | (any_type_dependent_arguments_p): Change args parameter to a vec. | |
143 | Change all callers. | |
144 | (make_args_non_dependent): Renamed from build_non_dependent_args. | |
145 | Change return type to void. Change parameter type to vec. Change | |
146 | all callers. | |
147 | (do_auto_deduction): Pass an array to type_unification_real. | |
148 | * semantics.c (perform_koenig_lookup): Change args to vec. Change | |
149 | all callers. | |
150 | (finish_call_expr): Change args to vec. Change all callers. Call | |
151 | build_op_call instead of passing CALL_EXPR to build_new_op. | |
152 | (cxx_omp_create_clause_info): Allocate vec to pass to | |
153 | build_special_member_call. | |
154 | * decl2.c (build_offset_ref_call_from_tree): Change args parameter | |
155 | to vec. Change all callers. | |
156 | * name-lookup.c (lookup_function_nonclass): Likewise. | |
157 | (struct arg_lookup): Change args to vec. | |
158 | (arg_assoc_namespace): Handle args as a vec. | |
159 | (arg_assoc_args_vec): New static function. | |
160 | (lookup_arg_dependent): Change args parameter to vec. Change all | |
161 | callers. | |
162 | * method.c (do_build_assign_ref): Allocate vec to pass to | |
163 | build_special_member_call. | |
164 | * except.c (build_throw): Likewise. | |
165 | * typeck2.c (build_functional_cast): Likewise. | |
166 | * cvt.c (ocp_convert): Likewise. | |
167 | * tree.c (build_min_non_dep_call_vec): Change last parameter to | |
168 | vec. Change all callers. | |
169 | * cp-tree.h: Update declarations. | |
170 | * name-lookup.h: Update declarations. | |
171 | ||
40449a90 SL |
172 | 2009-05-20 Sandra Loosemore <sandra@codesourcery.com> |
173 | ||
174 | * typeck.c (default_conversion): Check targetm.promoted_type. | |
175 | * decl.c (grokdeclarator): Check targetm.invalid_return_type. | |
176 | (grokparms): Check targetm.invalid_parameter_type. | |
177 | * cvt.c (ocp_convert): Check targetm.convert_to_type. | |
178 | (build_expr_type_conversion): Check targetm.promoted_type. | |
179 | ||
5cfd5d9b AP |
180 | 2009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com> |
181 | ||
182 | * typeck.c (build_binary_op): Allow % on integal vectors. | |
183 | ||
e57d93c6 JM |
184 | 2009-05-18 Jason Merrill <jason@redhat.com> |
185 | ||
186 | Implement explicit conversions ops as specified in N2437. | |
187 | * decl.c (grokdeclarator): Handle explicit conversion ops. | |
188 | (check_initializer): Pass flags to store_init_value. | |
189 | * decl2.c (maybe_emit_vtables): Likewise. | |
190 | * init.c (expand_aggr_init_1): Likewise. | |
191 | * call.c (convert_class_to_reference): Take flags parm, | |
192 | check DECL_NONCONVERTING_P. | |
193 | (build_user_type_conversion_1): Check DECL_NONCONVERTING_P. | |
194 | (add_builtin_candidates): Simplify getting type of conversion. | |
195 | (build_object_call): Likewise. Check DECL_NONCONVERTING_P. | |
196 | (implicit_conversion): Pass through LOOKUP_ONLYCONVERTING. | |
197 | (reference_binding): Take flags parm. Direct-initialize copy parm. | |
198 | (add_function_candidate): Direct-initialize the copy parm. | |
199 | (add_conv_candidate): Use LOOKUP_IMPLICIT, not LOOKUP_NORMAL. | |
200 | (build_builtin_candidate): Add LOOKUP_ONLYCONVERTING. | |
201 | (conditional_conversion): Likewise. | |
202 | (convert_like_real): Only complain about DECL_NONCONVERTING_P | |
203 | constructors. | |
204 | (perform_implicit_conversion_flags): Add flags parm to | |
205 | perform_implicit_conversion. Improve diagnostics. | |
206 | * cp-tree.h (LOOKUP_IMPLICIT): New macro. | |
207 | (LOOKUP_COPY_PARM): New bit macro. | |
208 | * cvt.c (build_expr_type_conversion): Check DECL_NONCONVERTING_P. | |
209 | * typeck.c (convert_for_assignment): Take flags parm, pass it to | |
210 | perform_implicit_conversion_flags. | |
211 | (cp_build_modify_expr): Pass flags to convert_for_assignment. | |
212 | (convert_for_initialization): Likewise. | |
213 | * typeck2.c (store_init_value): Take flags parm, pass to | |
214 | digest_init_flags. | |
215 | (digest_init_flags): Add flags parm to digest_init. | |
216 | (digest_init_r): Take flags parm, pass to convert_for_initialization. | |
217 | (process_init_constructor_array): Pass it. | |
218 | (process_init_constructor_record): Likewise. | |
219 | (process_init_constructor_union): Likewise. | |
220 | ||
7e361ae6 JM |
221 | 2009-05-16 Jason Merrill <jason@redhat.com> |
222 | ||
223 | PR c++/40139 | |
224 | * pt.c (tsubst_qualified_id): Retain the type if we aren't dealing | |
225 | with a dependent type. Actually look up the destructor. | |
226 | * semantics.c (finish_id_expression): Fix logic. | |
227 | (finish_qualified_id_expr): Don't try to use 'this' if we aren't in | |
228 | a function. | |
229 | * typeck.c (build_x_unary_op): Diagnose taking the address of a | |
230 | constructor or destructor. | |
231 | * tree.c (get_first_fn): Handle OFFSET_REF. | |
232 | ||
8fa6fa79 JM |
233 | 2009-05-17 Joseph Myers <joseph@codesourcery.com> |
234 | ||
235 | * tree.c (cxx_printable_name_internal): Allow consecutive | |
236 | translated and untranslated cached copies of the name of the | |
237 | current function. | |
238 | ||
7e5487a2 ILT |
239 | 2009-05-15 Ian Lance Taylor <iant@google.com> |
240 | ||
241 | * cp-tree.h (enum cp_lvalue_kind_flags): Rename from | |
242 | cp_lvalue_kind. Change all uses. | |
243 | (enum base_access_flags): Rename from enum base_access. Change | |
244 | all uses. | |
245 | * parser.c (enum cp_parser_flags): Remove enum tag. | |
246 | ||
a243fb4a MLI |
247 | 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org> |
248 | ||
249 | PR 16302 | |
250 | * call.c (build_new_op): Update calls to warn_logical_operator. | |
251 | ||
09639a83 ILT |
252 | 2009-05-14 Ian Lance Taylor <iant@google.com> |
253 | ||
254 | * class.c (layout_class_type): Change itk to unsigned int. | |
255 | * decl.c (finish_enum): Change itk to unsigned int. | |
256 | * parser.c (cp_parser_check_decl_spec): Change ds to int. Remove | |
257 | casts. | |
258 | ||
1806edae TG |
259 | 2009-05-13 David Mandelin <dmandelin@mozilla.com>: |
260 | ||
16f7ad42 | 261 | * decl.c (duplicate_decls): Preserve parameter attributes. |
1806edae | 262 | |
ea5783ee JH |
263 | 2009-05-10 Jan Hubicka <jh@suse.cz> |
264 | ||
265 | * decl2.c (cxx_callgraph_analyze_expr): Use | |
266 | cgraph_mark_address_taken. | |
267 | ||
f41c4af3 JM |
268 | 2009-05-10 Joseph Myers <joseph@codesourcery.com> |
269 | ||
270 | * call.c (name_as_c_string): Call type_as_string_translate. | |
271 | Translate identifiers to locale character set. | |
272 | * cp-tree.h (lang_decl_name): Update prototype. | |
273 | (type_as_string_translate, decl_as_string_translate, | |
274 | cxx_printable_name_translate): Declare. | |
275 | * cxx-pretty-print.c (M_): Define. | |
276 | (pp_cxx_unqualified_id, pp_cxx_canonical_template_parameter): Mark | |
277 | English fragments for conditional translation with M_. | |
278 | * decl.c (grokdeclarator): Translate identifiers to locale | |
279 | character set for diagnostics. | |
280 | * error.c (M_): Define. | |
281 | (dump_template_bindings, dump_type, dump_aggr_type, | |
282 | dump_type_prefix, dump_global_iord, dump_simple_decl, dump_decl, | |
283 | dump_function_decl, dump_template_parms, dump_expr, | |
284 | dump_binary_op, op_to_string, assop_to_string): Mark English | |
285 | fragments for conditional translation with M_. | |
286 | (type_as_string): Disable translation of identifiers. | |
287 | (type_as_string_translate): New. | |
288 | (expr_as_string): Disable translation of identifiers. | |
289 | (decl_as_string): Disable translation of identifiers. | |
290 | (decl_as_string_translate): New. | |
291 | (lang_decl_name): Add parameter translate. | |
292 | (args_to_string): Call type_as_string_translate. | |
293 | (cp_print_error_function): Call cxx_printable_name_translate. | |
294 | (print_instantiation_full_context, | |
295 | print_instantiation_partial_context): Call | |
296 | decl_as_string_translate. | |
297 | * parser.c (cp_lexer_get_preprocessor_token): Use %qE for | |
298 | identifier in diagnostic. | |
299 | * tree.c (cxx_printable_name): Change to | |
300 | cxx_printable_name_internal. Add parameter translate. | |
301 | (cxx_printable_name, cxx_printable_name_translate): New wrappers | |
302 | round cxx_printable_name_internal. | |
303 | ||
9b86d6bb L |
304 | 2009-05-08 H.J. Lu <hongjiu.lu@intel.com> |
305 | ||
306 | PR c/36892 | |
307 | * call.c (build_call_a): Updated warn_deprecated_use call. | |
308 | (build_over_call): Likewise. | |
309 | * decl.c (grokdeclarator): Likewise. | |
310 | (grokparms): Likewise. | |
311 | * semantics.c (finish_id_expression): Likewise. | |
312 | * typeck.c (build_class_member_access_expr): Likewise. | |
313 | (finish_class_member_access_expr): Likewise. | |
314 | ||
c7cb9f42 DS |
315 | 2009-05-06 Dodji Seketeli <dodji@redhat.com> |
316 | ||
317 | PR c++/17395 | |
318 | * pt.c (tsubst_copy) <case PARM_DECL>: We don't want to tsubst the | |
319 | whole list of PARM_DECLs, just the current one. | |
320 | ||
2650d9e1 SZ |
321 | 2009-05-05 Shujing Zhao <pearly.zhao@oracle.com> |
322 | ||
323 | * cp-tree.h: | |
9b86d6bb L |
324 | (opname_tab, assignop_tab, update_member_visibility, yyerror, yyhook, |
325 | mangle_compound_literal): Remove unused declarations. | |
326 | (build_vfield_ref, cxx_print_statistics, clone_function_decl, | |
327 | adjust_clone_args, maybe_push_cleanup_level, pushtag, make_anon_name, | |
328 | pushdecl_top_level_maybe_friend, pushdecl_top_level_and_finish, | |
329 | check_for_out_of_scope_variable, print_other_binding_stack, | |
330 | maybe_push_decl, cxx_mark_addressable, force_target_expr, | |
331 | build_target_expr_with_type, finish_case_label, | |
332 | cxx_maybe_build_cleanup, begin_eh_spec_block, finish_eh_spec_block, | |
333 | check_template_keyword, cxx_omp_predetermined_sharing, | |
334 | cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor, | |
335 | cxx_omp_clause_assign_op, cxx_omp_clause_dtor, cxx_omp_finish_clause, | |
336 | cxx_omp_privatize_by_reference): Rearrange the declarations line to | |
337 | match the comment that indicates the .c file which the functions are | |
338 | defined. | |
339 | (cxx_print_xnode, cxx_print_decl, cxx_print_type, | |
340 | cxx_print_identifier, cxx_print_error_function, pushdecl): Add comment. | |
2650d9e1 | 341 | |
95e20768 NS |
342 | 2009-05-05 Nathan Sidwell <nathan@codesourcery.com> |
343 | ||
344 | * typeck.c (cp_build_compound_expr): Require RHS to have a known | |
345 | type. | |
346 | * class.c (resolve_address_of_overloaded_function): Use | |
347 | OVL_CURRENT for error message. | |
348 | (instantiate_type): Forbid COMPOUND_EXPRs and remove code dealing | |
349 | with them. Do not copy the node. | |
350 | ||
5bbca039 JJ |
351 | 2009-05-05 Jakub Jelinek <jakub@redhat.com> |
352 | ||
353 | PR c++/40013 | |
354 | * pt.c (tsubst): If magic NOP_EXPR with side-effects has no type, | |
355 | set it from its operand's type after tsubst_expr. | |
356 | ||
67beaaa6 MLI |
357 | 2009-05-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
358 | ||
359 | PR c++/28152 | |
360 | * parser.c (cp_lexer_get_preprocessor_token): Do not store the | |
361 | canonical spelling for keywords. | |
362 | (cp_parser_attribute_list): Use the canonical spelling for | |
363 | keywords in attributes. | |
364 | ||
b02cec6e JM |
365 | 2009-05-01 Joseph Myers <joseph@codesourcery.com> |
366 | ||
367 | * cxx-pretty-print.c (is_destructor_name, pp_cxx_unqualified_id, | |
368 | pp_cxx_template_keyword_if_needed, pp_cxx_postfix_expression, | |
369 | pp_cxx_new_expression, pp_cxx_delete_expression, | |
370 | pp_cxx_unary_expression, pp_cxx_assignment_operator, | |
371 | pp_cxx_assignment_expression, pp_cxx_expression, | |
372 | pp_cxx_function_specifier, pp_cxx_decl_specifier_seq, | |
373 | pp_cxx_simple_type_specifier, pp_cxx_type_specifier_seq, | |
374 | pp_cxx_exception_specification, pp_cxx_direct_declarator, | |
375 | pp_cxx_ctor_initializer, pp_cxx_type_id, pp_cxx_statement, | |
376 | pp_cxx_namespace_alias_definition, pp_cxx_template_parameter, | |
377 | pp_cxx_canonical_template_parameter, pp_cxx_template_declaration, | |
378 | pp_cxx_declaration, pp_cxx_typeid_expression, | |
379 | pp_cxx_va_arg_expression, pp_cxx_offsetof_expression, | |
380 | pp_cxx_trait_expression): Mostly use pp_string and | |
381 | pp_cxx_ws_string in place of pp_identifier and pp_cxx_identifier | |
382 | for non-identifiers. Mark English strings for translation. | |
383 | * cxx-pretty-print.h (pp_cxx_ws_string): Define. | |
384 | * error.c (dump_template_parameter, dump_template_bindings, | |
385 | dump_type, dump_aggr_type, dump_type_prefix, dump_simple_decl, | |
386 | dump_decl, dump_template_decl, dump_function_decl, | |
387 | dump_parameters, dump_exception_spec, dump_template_parms, | |
388 | dump_expr, dump_binary_op, dump_unary_op, op_to_string, | |
389 | assop_to_string, args_to_string, cp_print_error_function, | |
390 | print_instantiation_full_context, | |
391 | print_instantiation_partial_context): Mostly use pp_string and | |
392 | pp_cxx_ws_string in place of pp_identifier and pp_cxx_identifier | |
393 | for non-identifiers. Mark English strings for translation. | |
394 | (dump_global_iord): Mark strings for translation; use longer | |
395 | strings instead of substituting single words. | |
396 | (function_category): Return a format string marked for | |
397 | translation, not a single word or phrase to substitute in a longer | |
398 | phrase. | |
399 | ||
b2ed71b6 BE |
400 | 2009-04-28 Ben Elliston <bje@au.ibm.com> |
401 | ||
402 | PR c++/35652 | |
403 | Revert: | |
404 | ||
405 | 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
406 | ||
407 | * typeck.c (cp_pointer_sum): Adjust call to pointer_int_sum. | |
408 | ||
81f40b79 ILT |
409 | 2009-04-27 Ian Lance Taylor <iant@google.com> |
410 | ||
411 | * semantics.c (finish_omp_clauses): Change type of c_kind to enum | |
412 | omp_clause_code. | |
413 | ||
7409e5a5 JJ |
414 | 2009-04-27 Jakub Jelinek <jakub@redhat.com> |
415 | ||
416 | PR c++/39875 | |
417 | * cvt.c (convert_to_void) <case INDIRECT_REF>: Only warn about | |
418 | -Wunused-value if implicit. | |
419 | ||
32e8bb8e ILT |
420 | 2009-04-24 Ian Lance Taylor <iant@google.com> |
421 | ||
422 | * call.c (build_temp): Change 0 to enum constant. | |
423 | * cp-tree.h (cp_lvalue_kind): Typedef to int rather than enum | |
424 | type. | |
425 | * cp-gimplify.c (cp_gimplify_expr): Add cast to enum type. | |
426 | * decl2.c (constrain_visibility): Likewise. | |
427 | * parser.c (cp_lexer_get_preprocessor_token): Likewise. | |
428 | (cp_parser_flags): Typedef to int rather than enum type. | |
429 | (cp_parser_expression_stack_entry): Change prec field to enum | |
430 | cp_parser_prec. | |
431 | ||
432 | * typeck.c (build_modify_expr): Add lhs_origtype parameter. | |
433 | Change all callers. | |
434 | ||
a58f7da1 DS |
435 | 2009-04-22 Dodji Seketeli <dodji@redhat.com> |
436 | ||
437 | PR c++/39639 | |
438 | * parser.c (cp_parser_template_argument_list): Display an error | |
439 | when an ellipsis is not preceded by a parameter pack. Also, warn | |
440 | about variadic templates usage without -std=c++0x. | |
441 | ||
d1b38208 TG |
442 | 2009-04-21 Taras Glek <tglek@mozilla.com> |
443 | ||
444 | * cp-tree.h: Update GTY annotations to new syntax. | |
445 | * decl.c: Likewise. | |
446 | * mangle.c: Likewise. | |
447 | * name-lookup.c: Likewise. | |
448 | * name-lookup.h: Likewise. | |
449 | * parser.c: Likewise. | |
450 | * pt.c: Likewise. | |
451 | * rtti.c: Likewise. | |
452 | * semantics.c: Likewise. | |
453 | * typeck2.c: Likewise. | |
454 | ||
cfc93532 MLI |
455 | 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
456 | ||
457 | PR c++/14875 | |
458 | * parser.c (cp_parser_error): Pass token->flags to c_parse_error. | |
459 | ||
36ef7262 MLI |
460 | 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
461 | ||
462 | PR c++/35711 | |
463 | * typeck.c (check_for_casting_away_constness): We diagnose casting | |
464 | away any qualifiers not just constness. | |
465 | (casts_away_constness): Mention that it handles more than just | |
466 | constness. | |
467 | ||
ad41bd84 JM |
468 | 2009-04-21 Joseph Myers <joseph@codesourcery.com> |
469 | ||
470 | * ChangeLog, ChangeLog-1993, ChangeLog-1994, ChangeLog-1995, | |
471 | ChangeLog-1996, ChangeLog-1997, ChangeLog-1998, ChangeLog-1999, | |
472 | ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, ChangeLog-2003, | |
473 | ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, | |
474 | ChangeLog-2008, ChangeLog.ptr, ChangeLog.tree-ssa, NEWS, | |
475 | cfns.gperf: Add copyright and license notices. | |
476 | * cfns.h: Regenerate. | |
477 | * ChangeLog, ChangeLog-2004: Correct dates. | |
478 | ||
1e4ae551 MLI |
479 | 2009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org> |
480 | ||
481 | PR 16202 | |
482 | * tree.c (lvalue_p_1): Use const_tree. | |
483 | Use CONST_CAST_TREE to avoid warning. | |
484 | (lvalue_p): Returns bool, receives const_tree. | |
485 | ||
9c650d90 MLI |
486 | 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
487 | ||
488 | PR c++/13358 | |
489 | * parser.c (cp_parser_check_decl_spec): Drop redundant flags. | |
490 | * error.c (pedwarn_cxx98): New. | |
491 | * cp-tree.h (pedwarn_cxx98): Declare. | |
492 | ||
311fa510 LCW |
493 | 2009-04-20 Le-Chun Wu <lcwu@google.com> |
494 | ||
495 | PR c++/39803 | |
496 | * init.c (build_vec_init): Set TREE_NO_WARNING on the | |
497 | compiler-generated INDIRECT_REF expression. | |
498 | ||
bbbbb16a ILT |
499 | 2009-04-20 Ian Lance Taylor <iant@google.com> |
500 | ||
501 | * typeck.c (build_function_call_vec): New function. | |
502 | (cp_build_function_call): Only pass first parameter to | |
503 | objc_rewrite_function_call. | |
504 | (build_modify_expr): Add rhs_origtype parameter. Change all | |
505 | callers. | |
506 | * decl.c (finish_decl): Add origtype parameter. Change all | |
507 | callers. | |
508 | * semantics.c (finish_call_expr): Pass VEC to | |
509 | resolve_overloaded_builtin. | |
510 | ||
a916d97f ILT |
511 | 2009-04-20 Ian Lance Taylor <iant@google.com> |
512 | ||
513 | * cp-tree.h (base_access): Change typedef to int. | |
514 | * parser.c (cp_parser_omp_flush): Change 0 to OMP_CLAUSE_ERROR. | |
515 | (cp_parser_omp_threadprivate): Likewise. | |
516 | * pt.c (unify_pack_expansion): Add casts to enum type. | |
517 | ||
ca409efd MLI |
518 | 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org> |
519 | ||
520 | PR c/32061 | |
521 | PR c++/36954 | |
522 | * call.c (build_new_op): Save the original codes of operands | |
523 | before folding. | |
524 | ||
149ccdd4 KH |
525 | 2009-04-18 Kazu Hirata <kazu@codesourcery.com> |
526 | ||
527 | * cp-tree.h: Remove the prototype for insert_block. | |
528 | * decl.c (insert_block): Remove. | |
529 | ||
f87393f0 ILT |
530 | 2009-04-16 Ian Lance Taylor <iant@google.com> |
531 | ||
532 | * cp-tree.h (enum tsubst_flags): Rename from enum tsubst_flags_t. | |
533 | (tsubst_flags_t): Change typedef from enum type to int. | |
534 | ||
311fa510 | 535 | 2009-04-16 Paolo Bonzini <bonzini@gnu.org> |
b6fc2cdb PB |
536 | |
537 | * decl.c (check_initializer): Use TYPE_VECTOR_OPAQUE | |
538 | instead of targetm.vector_opaque_p. | |
539 | ||
041d7a27 LCW |
540 | 2009-04-15 Le-Chun Wu <lcwu@google.com> |
541 | ||
542 | PR c++/39551 | |
543 | * call.c (build_over_call): Set TREE_NO_WARNING on the | |
544 | compiler-generated INDIRECT_REF expression. | |
545 | * cvt.c (convert_to_void): Emit warning when stripping off | |
546 | INDIRECT_REF. | |
547 | ||
dab71827 DN |
548 | 2009-04-14 Diego Novillo <dnovillo@google.com> |
549 | ||
550 | * parser.c (cp_parser_type_specifier_seq): Move call to | |
551 | invoke_plugin_callbacks ... | |
552 | (cp_parser_type_specifier_seq): ... here. | |
553 | ||
68a607d8 DN |
554 | 2009-04-14 Le-Chun Wu <lcwu@google.com> |
555 | ||
556 | * Make-lang.in: Modify dependencies of files including plugin.h. | |
557 | * decl.c (finish_function): Call invoke_plugin_callbacks. | |
558 | * parser.c (cp_parser_type_specifier): Call invoke_plugin_callbacks. | |
559 | ||
f9b20c62 JM |
560 | 2009-04-14 Jason Merrill <jason@redhat.com> |
561 | ||
562 | PR c++/39763 | |
563 | * name-lookup.c (pushdecl_maybe_friend): Avoid all warnings | |
564 | about shadowing by tentative parms. | |
565 | ||
82e738a5 | 566 | 2009-04-13 Jason Merrill <jason@redhat.com> |
15237f9a JM |
567 | |
568 | PR c++/39480 | |
569 | * call.c (build_over_call): Don't call memcpy if the target is | |
570 | the same as the source. | |
571 | ||
c1b93f2b JM |
572 | 2009-04-13 Jason Merrill <jason@redhat.com> |
573 | ||
574 | PR c++/39750 | |
575 | * pt.c (uses_template_parms): Handle CONSTRUCTOR. | |
576 | ||
0f8a7706 JM |
577 | 2009-04-12 Jason Merrill <jason@redhat.com> |
578 | ||
579 | PR c++/39742 | |
580 | * call.c (joust): Don't crash on variadic fn. | |
581 | ||
72b75d03 L |
582 | 2009-04-10 Jason Merrill <jason@redhat.com> |
583 | ||
584 | PR c++/28301 | |
585 | * parser.c (cp_parser_skip_to_end_of_block_or_statement): Return | |
586 | if we see a close brace without an open brace. | |
587 | ||
ad41bd84 | 588 | 2009-04-10 H.J. Lu <hongjiu.lu@intel.com> |
886b9612 L |
589 | |
590 | * parser.c (cp_parser_class_specifier): Remove the unused | |
591 | has_trailing_semicolon. | |
592 | ||
0d246707 MLI |
593 | 2009-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org> |
594 | ||
595 | PR c++/20118 | |
596 | * parser.c (cp_parser_check_template_parameters): Take a | |
597 | cp_declarator parameter. | |
598 | (cp_parser_elaborated_type_specifier): Update to | |
599 | cp_parser_check_template_parameters. | |
600 | (cp_parser_class_head): Likewise. | |
601 | (cp_parser_check_declarator_template_parameters): Likewise. | |
602 | (cp_parser_check_template_parameters): Handle first the non-error | |
603 | conditions. Give more accurate diagnostics if a declarator is | |
604 | given. | |
605 | ||
f6f5e3a1 JM |
606 | 2009-04-08 Jason Merrill <jason@redhat.com> |
607 | ||
608 | PR c++/25185 | |
609 | * error.c (dump_aggr_type): Chase template typedefs if | |
610 | -fno-pretty-templates. | |
611 | ||
02060927 DS |
612 | 2009-04-08 Dodji Seketeli <dodji@redhat.com> |
613 | ||
614 | PR c++/39637 | |
615 | * parser.c (cp_parser_enumerator_definition): Make sure the | |
616 | initializer of the enumerator doesn't contain any bare parameter pack. | |
617 | ||
e04c614e JM |
618 | 2009-04-07 Jason Merrill <jason@redhat.com> |
619 | ||
620 | PR c++/34691 | |
621 | * name-lookup.c (merge_functions): Keep multiple extern "C" functions. | |
622 | * call.c (joust): Complain about mismatched default arguments | |
623 | in extern "C" functions. | |
624 | * class.c (resolve_address_of_overloaded_function): Handle multiple | |
625 | extern "C" functions. | |
626 | * pt.c (resolve_overloaded_unification): Likewise. | |
627 | ||
6ea2bd47 JM |
628 | 2009-04-07 Jason Merrill <jason@redhat.com> |
629 | ||
630 | PR c++/25185 | |
631 | * error.c (dump_function_decl): Don't pretty-print templates | |
632 | if -fno-pretty-templates. | |
633 | (count_non_default_template_args): Print all args if | |
634 | -fno-pretty-templates. | |
635 | ||
463ecaca JM |
636 | 2009-04-06 Jason Merrill <jason@redhat.com> |
637 | ||
638 | PR c++/35146 | |
639 | * pt.c (fn_type_unification): For DEDUCE_EXACT check that | |
640 | the deduced template arguments give us the parameter types | |
641 | we're looking for. | |
642 | ||
435970ad JM |
643 | 2009-04-05 Giovanni Bajo <giovannibajo@libero.it> |
644 | Jason Merrill <jason@redhat.com> | |
53b39fe5 JM |
645 | |
646 | PR c++/14912 | |
647 | * error.c (count_non_default_template_args): New fn. | |
648 | (dump_template_parms): Call it. | |
649 | (dump_template_argument_list): Call it. Add parms parm. | |
650 | (dump_template_argument): Adjust call to dump_template_argument_list. | |
651 | (dump_type, dump_decl): Likewise. | |
652 | (dump_template_bindings): Refactor logic. | |
653 | ||
b77ba909 JM |
654 | 2009-04-03 Jason Merrill <jason@redhat.com> |
655 | ||
a4d674fc JM |
656 | PR c++/25185 |
657 | * error.c (dump_template_bindings): Look through typedefs in | |
658 | typename results. | |
659 | (dump_type) [TYPENAME_TYPE]: Print the typedef name if any. | |
660 | (find_typenames_r): Also collect typedefs. | |
661 | * pt.c (unify): Strip typedefs. | |
662 | ||
b77ba909 JM |
663 | PR c++/39608 |
664 | * semantics.c (finish_id_expression): Don't assume a dependent | |
665 | member of the current instantiation isn't a valid integral | |
666 | constant expression. Check dependent_scope_p. | |
667 | * pt.c (dependent_scope_p): Check TYPE_P. | |
668 | (tsubst_copy): If args is null, just return. | |
669 | ||
d5c8be27 JM |
670 | 2009-04-02 Jason Merrill <jason@redhat.com> |
671 | ||
672 | PR c++/25185 | |
673 | * error.c (find_typenames, find_typenames_r): New fns. | |
674 | (dump_function_decl): Call find_typenames. | |
675 | (dump_template_bindings): Print typenames as well. | |
676 | * pt.c (tsubst): Non-static. | |
677 | * cp-tree.h: Declare it. | |
678 | ||
d0940d56 DS |
679 | 2009-04-02 Dodji Seketeli <dodji@redhat.com> |
680 | ||
681 | PR c++/26693 | |
682 | * decl2.c (grokfield): when a typedef appears in a | |
683 | class, create the typedef variant type node for it. | |
684 | (save_template_attributes): Creating typedef variant type node | |
685 | here is now useless. | |
686 | * decl.c (grokdeclarator): If the typedef'ed struct/class was | |
687 | anonymous, set the proper type name to all its type variants. | |
688 | (xref_basetypes) : Fixup the variant types after setting | |
689 | TYPE_BINFO on REF. | |
690 | * name-lookup.c (pushdecl_maybe_friend): Reuse the | |
691 | set_underlying_type function to install typedef variant types. | |
692 | * cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): New template accessor | |
693 | macro. | |
694 | (append_type_to_template_for_access_check): New entry points. | |
695 | * semantics.c (check_accessibility_of_qualified_id): | |
696 | When a typedef that is a member of a class appears in a template, | |
697 | add it to the template. It will be ... | |
698 | * class.c (finish_struct_bits): Split type variant fixup into ... | |
699 | (fixup_type_variants): A new entry point. | |
700 | * pt.c (instantiate_class_template, instantiate_template ): ... access | |
701 | checked at template instantiation time. | |
702 | (resolve_type_name_type): The type name should be the name of the | |
703 | main type variant. | |
704 | (retrieve_specialization): Specializations of template typedefs aren't | |
705 | to looked up in DECL_TEMPLATE_INSTANTIATIONS (tmpl). | |
706 | (append_type_to_template_for_access_check): New entry point. | |
707 | (tsubst_decl): For typedefs, build the variant type from the correct | |
708 | original type. | |
709 | (get_class_bindings): Fix function comment. | |
710 | (perform_typedefs_access_check): New entry point. | |
711 | ||
a3c49752 JM |
712 | 2009-03-31 Jason Merrill <jason@redhat.com> |
713 | ||
a70f5987 JM |
714 | PR c++/34691 |
715 | * name-lookup.c (pushdecl_maybe_friend): Diagnose mismatched | |
716 | extern "C" declarations. | |
717 | ||
51fc2d02 JM |
718 | C++ DR 613 |
719 | * semantics.c (finish_non_static_data_member): Allow such references | |
720 | without an associated object in sizeof/decltype/alignof. | |
721 | ||
fba1b95f JM |
722 | * ptree.c (cxx_print_decl): Pretty-print full name of |
723 | function/template. | |
724 | (cxx_print_type): Pretty-print full name of class. | |
725 | ||
2553fb66 JM |
726 | * decl.c (grokdeclarator): Reject pointer to qualified function |
727 | type. | |
728 | ||
729 | PR c++/37806, core issue 547 | |
0d9c0892 JM |
730 | * typeck.c (cp_apply_type_quals_to_decl): Don't apply any quals |
731 | to a typedef. | |
732 | * tree.c (cp_build_qualified_type_real): Don't apply restrict to a | |
733 | function type. | |
734 | * decl.h (enum decl_context): Add TEMPLATE_TYPE_ARG. | |
735 | * decl.c (groktypename): Add is_template_arg parameter. | |
736 | (grokdeclarator): Allow function cv-quals on a template type arg. | |
737 | * parser.c (cp_parser_new_type_id, cp_parser_type_id): Add | |
738 | is_template_arg argument in calls to groktypename. | |
739 | * cp-tree.h: Adjust prototype. | |
740 | * error.c (dump_type_prefix, dump_type_suffix): Fix plain | |
741 | FUNCTION_TYPE printing. | |
742 | ||
a3c49752 JM |
743 | * mangle.c (write_expression): Mangle dependent name as |
744 | source-name. | |
5094a795 JM |
745 | |
746 | PR c++/38030, 38850, 39070 | |
747 | * pt.c (type_dependent_expression_p_push): New fn. | |
748 | (tsubst_copy_and_build) [CALL_EXPR]: Only do arg-dep lookup when the | |
749 | substitution makes the call non-dependent. Preserve koenig_p. | |
750 | * parser.c (cp_parser_postfix_expression): Only do arg-dep lookup | |
751 | for non-dependent calls. | |
752 | * semantics.c (finish_call_expr): Revert earlier changes. | |
753 | * cp-tree.h: Revert change to finish_call_expr prototype. | |
754 | ||
148e4216 JM |
755 | 2009-03-29 Joseph Myers <joseph@codesourcery.com> |
756 | ||
757 | PR preprocessor/34695 | |
758 | * cp-tree.h (cp_cpp_error): Remove. | |
759 | * error.c (cp_cpp_error): Remove. | |
760 | * parser.c (cp_lexer_new_main): Set done_lexing instead of | |
761 | client_diagnostic and error callback. | |
762 | ||
2ec5deb5 PB |
763 | 2009-03-28 Paolo Bonzini <bonzini@gnu.org> |
764 | ||
765 | * cp/cp-objcp-common.h (LANG_HOOKS_STATICP): Remove. | |
766 | * cp/cp-objcp-common.c (cxx_staticp): Remove. | |
767 | * cp/cp-tree.h (cxx_staticp): Remove. | |
768 | ||
574872ff JJ |
769 | 2009-03-28 Jakub Jelinek <jakub@redhat.com> |
770 | ||
771 | PR c++/39554 | |
772 | * parser.c (cp_parser_postfix_expression): Don't call | |
773 | warning_if_disallowed_function_p. | |
774 | ||
0387122d JH |
775 | 2009-03-27 Jan Hubicka <jh@suse.cz> |
776 | ||
777 | * except.c (choose_personality_routine): Set terminate_node to abort | |
778 | for java exceptions. | |
779 | ||
68599f33 DS |
780 | 2009-03-27 Dodji Seketeli <dodji@redhat.com> |
781 | Jakub Jelinek <jakub@redhat.com> | |
782 | ||
783 | PR debug/37959 | |
784 | * cp-objcp-common.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define. | |
785 | (cp_function_decl_explicit_p): New prototype. | |
786 | * cp-objcp-common.c (cp_function_decl_explicit_p): New function. | |
787 | ||
8ec0d73b AP |
788 | 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com> |
789 | ||
790 | PR c++/38638 | |
791 | * parser.c (cp_parser_elaborated_type_specifier): If we have a | |
792 | typename tag and don't have either a TYPE_DECL or a | |
793 | TEMPLATE_ID_EXPR, set the type to NULL. | |
794 | ||
48b6cd9d SM |
795 | 2009-03-27 Simon Martin <simartin@users.sourceforge.net> |
796 | ||
797 | PR c++/37647 | |
798 | * decl.c (grokdeclarator): Reject [con|de]stuctors in a non-class | |
799 | scope. | |
800 | ||
6a837908 SM |
801 | 2009-03-27 Simon Martin <simartin@users.sourceforge.net> |
802 | ||
803 | PR c++/29727 | |
804 | * decl.c (check_array_designated_initializer): Handle error_mark_node. | |
805 | ||
a5f805df MLI |
806 | 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
807 | ||
808 | PR c++/35652 | |
809 | * typeck.c (cp_pointer_sum): Adjust call to pointer_int_sum. | |
810 | ||
359b8672 AH |
811 | 2009-03-26 Andrew Haley <aph@redhat.com> |
812 | ||
813 | PR C++/39380 | |
814 | * decl2.c (possibly_inlined_p): If java exceptions are in use | |
815 | don't inline a decl unless it is explicitly marked inline. | |
816 | * lex.c: (pragma_java_exceptions): New variable. | |
817 | (handle_pragma_java_exceptions): Set pragma_java_exceptions. | |
818 | * cp-tree.h (pragma_java_exceptions): Declare new variable. | |
819 | ||
f7cbd40e JM |
820 | 2009-03-24 Jason Merrill <jason@redhat.com> |
821 | ||
822 | PR c++/28274 | |
823 | * name-lookup.c (pushdecl_maybe_friend): Check default args later. | |
824 | ||
c5cdb03f JJ |
825 | 2009-03-23 Jakub Jelinek <jakub@redhat.com> |
826 | ||
827 | PR c/39495 | |
828 | * semantics.c (handle_omp_for_class_iterator): Swap cond operands and | |
829 | code if iter is the second operand. | |
830 | * parser.c (cp_parser_binary_expression): Add no_toplevel_fold_p | |
831 | argument. If it is set, don't build the toplevel expression with | |
832 | build_x_binary_op, but build2. | |
833 | (cp_parser_assignment_expression, cp_parser_omp_for_incr): Adjust | |
834 | callers. | |
835 | (cp_parser_omp_for_cond): Don't assume the first operand of the | |
836 | comparison must be decl. | |
837 | ||
6ab282f6 JM |
838 | 2009-03-23 Jason Merrill <jason@redhat.com> |
839 | ||
27425fe7 | 840 | PR c++/37729 |
6afcfe0a JM |
841 | * pt.c (make_fnparm_pack): Split out from... |
842 | (instantiate_decl): ...here. | |
843 | (tsubst_pack_expansion): Handle being called in a late-specified | |
844 | return type. | |
845 | ||
6ab282f6 JM |
846 | PR c++/39526 |
847 | * name-lookup.c (pushdecl_maybe_friend): Don't warn about shadowing | |
848 | a parm with a parm. | |
849 | ||
72258929 JM |
850 | 2009-03-20 Jason Merrill <jason@redhat.com> |
851 | ||
c1165535 JM |
852 | PR c++/28879 |
853 | * parser.c (cp_parser_direct_declarator): In a template, wrap | |
854 | non-constant expression in NOP_EXPR with TREE_SIDE_EFFECTS set. | |
855 | * pt.c (tsubst): Preserve it in a partial instantiation. | |
856 | (dependent_type_p_r): Don't check value_dependent_expression_p. | |
857 | * decl.c (compute_array_index_type): Don't check | |
858 | value_dependent_expression_p if TREE_SIDE_EFFECTS. | |
859 | ||
72258929 JM |
860 | C++ core issue 703 |
861 | * typeck2.c (check_narrowing): Don't complain about loss of | |
862 | precision when converting a floating-point constant. | |
863 | ||
ea1199ee JJ |
864 | 2009-03-19 Jakub Jelinek <jakub@redhat.com> |
865 | ||
866 | PR c/39495 | |
867 | * parser.c (cp_parser_omp_for_cond): Don't check lhs if decl is NULL. | |
868 | (cp_parser_omp_for_loop): Always use cp_parser_omp_for_cond. | |
869 | ||
8f5929e1 JJ |
870 | 2009-03-18 Jakub Jelinek <jakub@redhat.com> |
871 | ||
872 | * parser.c (struct cp_token): Reorder fields for 64-bit hosts. | |
873 | (eof_token): Adjust. | |
874 | ||
367bdb8d L |
875 | 2009-03-18 H.J. Lu <hongjiu.lu@intel.com> |
876 | ||
877 | PR c++/39425 | |
878 | * parser.c (cp_parser_explicit_specialization): Don't skip the | |
879 | rest of the specialization when begin_specialization returns | |
880 | false. | |
881 | ||
448545cb JM |
882 | 2009-03-17 Jason Merrill <jason@redhat.com> |
883 | ||
884 | * decl.c (grokfndecl): Set DECL_CONTEXT on parms. | |
885 | (duplicate_decls): Adjust DECL_CONTEXT of newdecl's parms. | |
886 | * pt.c (check_explicit_specialization): Likewise. | |
887 | (tsubst_copy) [PARM_DECL]: Return a dummy parm if we don't have a | |
888 | local specialization. | |
889 | * tree.c (cp_tree_equal) [PARM_DECL]: Check type and index, not name. | |
890 | * decl2.c (parm_index): New fn. | |
891 | * semantics.c (finish_decltype_type): Don't use describable_type. | |
892 | * mangle.c (write_expression): Likewise. Mangle ALIGNOF_EXPR. | |
893 | Give a sorry for unsupported codes rather than crash. Mangle | |
894 | conversions with other than 1 operand. New mangling for PARM_DECL. | |
895 | * operators.def (ALIGNOF_EXPR): Mangle as "az". | |
896 | ||
03f30216 DK |
897 | 2009-03-17 Jing Yu <jingyu@google.com> |
898 | ||
899 | PR middle-end/39378 | |
900 | * method.c (use_thunk): Change is_thunk from crtl to cfun. | |
901 | ||
ff284b4b PC |
902 | 2009-03-17 Paolo Carlini <paolo.carlini@oracle.com> |
903 | ||
904 | PR c++/39475 | |
905 | * semantics.c (check_trait_type): New. | |
906 | (finish_trait_expr): Use it. | |
907 | ||
a3f596ba JJ |
908 | 2009-03-17 Jakub Jelinek <jakub@redhat.com> |
909 | ||
98381eb4 JJ |
910 | * name-lookup.c (cp_emit_debug_info_for_using): Emit USING_STMTs |
911 | instead of calling imported_module_or_decl debug hook if | |
912 | building_stmt_tree (). | |
913 | * cp-gimplify.c (cp_gimplify_expr): Don't assert the first operand | |
914 | is a NAMESPACE_DECL. | |
915 | ||
47512a6e JJ |
916 | PR debug/37890 |
917 | * name-lookup.c (do_namespace_alias): Don't call global_decl debug | |
918 | hook at function scope. | |
919 | ||
a3f596ba JJ |
920 | PR debug/39471 |
921 | * cp-gimplify.c (cp_gimplify_expr): Don't set DECL_NAME | |
922 | on IMPORTED_DECL. | |
923 | ||
8c30a510 JJ |
924 | 2009-03-09 Jakub Jelinek <jakub@redhat.com> |
925 | ||
926 | PR c++/39371 | |
927 | * semantics.c (finish_switch_cond): Don't call get_unwidened. | |
928 | * decl.c (finish_case_label): Pass SWITCH_STMT_TYPE as 3rd argument | |
929 | instead of TREE_TYPE (cond). | |
930 | ||
ae9b2a48 L |
931 | 2009-03-08 H.J. Lu <hongjiu.lu@intel.com> |
932 | ||
933 | PR c++/39060 | |
934 | * parser.c (cp_parser_late_parsing_default_args): Continue | |
935 | the loop when cp_parser_assignment_expression returns | |
936 | error_mark_node. | |
937 | ||
9207099b JM |
938 | 2009-03-07 Jason Merrill <jason@redhat.com> |
939 | ||
940 | PR c++/39367 | |
941 | * init.c (build_new_1): Don't use a VLA type. | |
942 | (build_vec_init): Handle getting a pointer for BASE. | |
943 | ||
d9781752 L |
944 | 2009-03-06 H.J. Lu <hongjiu.lu@intel.com> |
945 | ||
946 | PR c++/37520 | |
947 | * cp-tree.h: Check NO_DOT_IN_LABEL before NO_DOLLAR_IN_LABEL | |
948 | when mangling symbols. | |
949 | ||
d8b4270d PC |
950 | 2009-03-06 Paolo Carlini <paolo.carlini@oracle.com> |
951 | ||
952 | PR c++/33492 | |
953 | * error.c (dump_expr): Don't try to print THROW_EXPRs in full. | |
954 | ||
2dc6d666 AO |
955 | 2009-03-06 Alexandre Oliva <aoliva@redhat.com> |
956 | ||
957 | * decl.c (record_builtin_java_type): Use canonicalized integer | |
958 | types. | |
959 | ||
1cb801bc JM |
960 | 2009-03-04 Jason Merrill <jason@redhat.com> |
961 | ||
2588c9e9 JM |
962 | PR c++/38908 |
963 | * class.c (is_really_empty_class): New fn. | |
964 | * cp-tree.h: Declare it. | |
965 | * cp-objcp-common.c (cp_expr_size): Use it. | |
966 | ||
d095e03c JM |
967 | PR c++/13549 |
968 | * semantics.c (perform_koenig_lookup): Handle TEMPLATE_ID_EXPR. | |
969 | * parser.c (cp_parser_postfix_expression): Call it for | |
970 | TEMPLATE_ID_EXPR. | |
971 | * tree.c (is_overloaded_fn): Look through TEMPLATE_ID_EXPR. | |
972 | (get_first_fn): Likewise. | |
973 | ||
1cb801bc JM |
974 | PR c++/9634 |
975 | PR c++/29469 | |
976 | PR c++/29607 | |
b78ef3ee | 977 | Implement DR 224. |
1cb801bc JM |
978 | * decl.c (make_typename_type): Do look inside currently open classes. |
979 | * parser.c (cp_parser_lookup_name): Likewise. | |
980 | (cp_parser_template_name): Likewise. | |
981 | * pt.c (dependent_scope_p): New function. | |
982 | * cp-tree.h: Declare it. | |
983 | * class.c (currently_open_class): Return fast if T isn't a class. | |
984 | ||
aad5badd L |
985 | 2009-02-26 H.J. Lu <hongjiu.lu@intel.com> |
986 | ||
987 | PR c++/37789 | |
988 | * parser.c (cp_parser_mem_initializer): Return error_mark_node | |
989 | if cp_parser_mem_initializer_id returns error_mark_node. | |
990 | ||
ccfbd880 RG |
991 | 2009-02-24 Richard Guenther <rguenther@suse.de> |
992 | ||
993 | PR c++/39242 | |
994 | * pt.c (instantiate_decl): Do not instantiate extern, non-inline | |
995 | declared functions. | |
996 | ||
8c8d4a46 L |
997 | 2009-02-23 H.J. Lu <hongjiu.lu@intel.com> |
998 | ||
999 | PR c++/36411 | |
1000 | * pt.c (coerce_template_template_parms): Return 0 if parameter | |
1001 | is error_mark_node. | |
1002 | ||
2604de9d JM |
1003 | 2009-02-23 Jason Merrill <jason@redhat.com> |
1004 | ||
1005 | * pt.c (unify): Call maybe_adjust_types_for_deduction when | |
1006 | deducing from an initializer list. | |
1007 | ||
bd967b22 JM |
1008 | 2009-02-20 Jason Merrill <jason@redhat.com> |
1009 | ||
1010 | PR c++/39225 | |
1011 | * decl.c (grokdeclarator): Handle ~identifier. | |
1012 | ||
09812622 JJ |
1013 | 2009-02-19 Jakub Jelinek <jakub@redhat.com> |
1014 | ||
1015 | PR target/39175 | |
1016 | * decl2.c (determine_visibility): If visibility changed and | |
1017 | DECL_RTL has been already set, call make_decl_rtl to update symbol | |
1018 | flags. | |
1019 | ||
68017cb4 L |
1020 | 2009-02-19 H.J. Lu <hongjiu.lu@intel.com> |
1021 | ||
1022 | PR c++/39188 | |
1023 | * cp-tree.h (maybe_commonize_var): New. | |
1024 | ||
1025 | * decl.c (maybe_commonize_var): Make it extern. | |
1026 | ||
1027 | * decl2.c (finish_anon_union): Call maybe_commonize_var. | |
1028 | ||
57c2231b L |
1029 | 2009-02-18 H.J. Lu <hongjiu.lu@intel.com> |
1030 | ||
1031 | PR c++/39219 | |
1032 | * parser.c (cp_parser_enum_specifier): Apply all attributes. | |
1033 | ||
98b80692 JM |
1034 | 2009-02-18 Jason Merrill <jason@redhat.com> |
1035 | ||
1036 | * cfns.h: Tweak pathname for cfns.gperf. | |
1037 | ||
da964fea JM |
1038 | 2009-02-13 Jason Merrill <jason@redhat.com> |
1039 | ||
1040 | PR c++/39070 | |
1041 | * semantics.c (finish_call_expr): Change koenig_p parm to int. | |
1042 | If -1, don't set KOENIG_LOOKUP_P but do keep hidden candidates. | |
1043 | * cp-tree.h: Adjust prototype. | |
1044 | * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Pass -1. | |
1045 | ||
ed7284dd JM |
1046 | 2009-02-12 Jason Merrill <jason@redhat.com> |
1047 | ||
1048 | PR c++/38950 | |
1049 | * pt.c (unify)[TEMPLATE_PARM_INDEX]: Convert to the tsubsted type. | |
1050 | ||
fd97a96a JM |
1051 | 2009-02-11 Jason Merrill <jason@redhat.com> |
1052 | ||
bff54b19 JM |
1053 | PR c++/39153 |
1054 | * decl2.c (cp_write_global_declarations): | |
1055 | Check DECL_DEFAULTED_FN, not DECL_ARTIFICIAL. | |
1056 | ||
fd97a96a JM |
1057 | PR c++/30111 |
1058 | * init.c (build_value_init_noctor): Split out from... | |
1059 | (build_value_init): ...here. | |
1060 | (expand_aggr_init_1): Handle value-initialization. | |
1061 | * cp-tree.h: Add declaration. | |
1062 | * class.c (type_has_user_provided_constructor): | |
1063 | Handle non-class arguments. | |
1064 | ||
952e24fe JM |
1065 | 2009-02-10 Jason Merrill <jason@redhat.com> |
1066 | ||
bfbe1b68 JM |
1067 | PR c++/38649 |
1068 | * class.c (defaultable_fn_p): Handle ... properly. | |
1069 | ||
952e24fe JM |
1070 | PR c++/36744 |
1071 | * tree.c (lvalue_p_1): Condition rvalue ref handling on | |
1072 | treat_class_rvalues_as_lvalues, too. | |
1073 | ||
493e377c PC |
1074 | 2009-02-10 Paolo Carlini <paolo.carlini@oracle.com> |
1075 | ||
1076 | PR c++/34397 | |
1077 | * typeck.c (build_x_array_ref): New. | |
1078 | * cp-tree.h: Declare it. | |
1079 | * pt.c (tsubst_copy_and_build): Use it for case ARRAY_REF. | |
1080 | ||
450a927a JM |
1081 | 2009-02-09 Jason Merrill <jason@redhat.com> |
1082 | ||
1083 | PR c++/39109 | |
1084 | * semantics.c (simplify_aggr_init_expr): Do zero-initialization here. | |
1085 | * init.c (build_value_init): Not here. Don't build a TARGET_EXPR. | |
1086 | * tree.c (get_target_expr): Handle AGGR_INIT_EXPR. | |
1087 | * cp-gimplify.c (cp_gimplify_init_expr): Remove special handling | |
1088 | for build_value_init TARGET_EXPR. | |
1089 | * cp-tree.h (AGGR_INIT_ZERO_FIRST): New macro. | |
1090 | ||
da1512ad PC |
1091 | 2009-02-06 Paolo Carlini <paolo.carlini@oracle.com> |
1092 | ||
1093 | PR c++/35147 | |
1094 | PR c++/37737 | |
1095 | * cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Check TREE_VEC_LENGTH. | |
1096 | ||
ee429f84 JJ |
1097 | 2009-02-04 Jakub Jelinek <jakub@redhat.com> |
1098 | ||
1099 | PR c++/39095 | |
1100 | * operators.def: Use COMPONENT_REF code for ->/pt operator again, | |
1101 | remove ./dt operator. | |
1102 | * mangle.c (write_expression): Handle COMPONENT_REF after handling | |
1103 | ADDR_EXPR, for COMPONENT_REF without ARROW_EXPR inside of it | |
1104 | write_string ("dt") instead of using operators.def. | |
1105 | ||
d0db8989 JM |
1106 | 2009-02-03 Jason Merrill <jason@redhat.com> |
1107 | ||
1108 | * typeck.c (cp_build_unary_op): Only complain about taking address | |
1109 | of main if pedantic. | |
1110 | ||
a36c33eb JJ |
1111 | 2009-02-03 Jakub Jelinek <jakub@redhat.com> |
1112 | ||
754ccf7c JJ |
1113 | PR inline-asm/39059 |
1114 | * parser.c (cp_parser_primary_expression): Reject FIXED_CSTs. | |
1115 | ||
a36c33eb JJ |
1116 | PR c++/39056 |
1117 | * typeck2.c (digest_init_r): Don't call process_init_constructor | |
1118 | for COMPLEX_TYPE. | |
1119 | ||
e350dbbd PB |
1120 | 2009-02-03 Paolo Bonzini <bonzini@gnu.org> |
1121 | ||
1122 | PR c++/36897 | |
1123 | * pt.c (convert_nontype_argument_function): Expect expr to be an | |
1124 | ADDR_EXPR. | |
1125 | ||
1126 | PR c++/37314 | |
1127 | * typeck.c (merge_types): Call resolve_typename_type if only | |
1128 | one type is a typename. | |
1129 | ||
ce6b9ebb JM |
1130 | 2009-02-02 Jason Merrill <jason@redhat.com> |
1131 | ||
1132 | PR c++/39054 | |
1133 | * parser.c (cp_parser_unqualified_id): Don't wrap error_mark_node | |
1134 | in BIT_NOT_EXPR. | |
1135 | ||
def88a88 PC |
1136 | 2009-02-01 Paolo Carlini <paolo.carlini@oracle.com> |
1137 | ||
9b86d6bb L |
1138 | PR c++/39053 |
1139 | * parser.c (cp_parser_pure_specifier): If there are no tokens left | |
1140 | do not call cp_lexer_consume_token. | |
def88a88 | 1141 | |
ac9bc18b JJ |
1142 | 2009-01-30 Jakub Jelinek <jakub@redhat.com> |
1143 | ||
1144 | PR c++/39028 | |
1145 | * parser.c (cp_parser_already_scoped_statement): Handle __label__ | |
1146 | declarations. | |
1147 | ||
1fae3e66 PC |
1148 | 2009-01-30 Paolo Carlini <paolo.carlini@oracle.com> |
1149 | ||
1150 | PR c++/33465 | |
1151 | * error.c (dump_expr): Handle FIX_TRUNC_EXPR and FLOAT_EXPR. | |
1152 | ||
1153 | 2009-01-30 Paolo Carlini <paolo.carlini@oracle.com> | |
1154 | ||
1155 | PR c++/38655 | |
1156 | * error.c (dump_type_prefix, dump_type_suffix): Handle FIXED_POINT_TYPE. | |
1157 | ||
90ef7773 PC |
1158 | 2009-01-29 Paolo Carlini <paolo.carlini@oracle.com> |
1159 | ||
1160 | * typeck.c (invalid_nonstatic_memfn_p): Use | |
1161 | DECL_NONSTATIC_MEMBER_FUNCTION_P. | |
1162 | ||
267e265c PC |
1163 | 2009-01-27 Paolo Carlini <paolo.carlini@oracle.com> |
1164 | ||
1165 | PR c++/37554 | |
1166 | * call.c (build_over_call): If convert_for_arg_passing returns | |
1167 | error_mark_node unconditionally return it. | |
1168 | ||
2cd36c22 AN |
1169 | 2009-01-22 Adam Nemet <anemet@caviumnetworks.com> |
1170 | ||
1171 | * class.c (check_field_decls): Also inherit packed for bitfields | |
1172 | regardless of their type. | |
1173 | ||
03c2a308 DS |
1174 | 2009-01-22 Dodji Seketeli <dodji@redhat.com> |
1175 | ||
1176 | PR c++/38930 | |
1177 | * decl2.c (grokfield): Reverting changes of PR c++/26693 | |
1178 | (save_template_attributes): Likewise. | |
1179 | * decl.c (grokdeclarator): Likewise. | |
1180 | * name-lookup.c (pushdecl_maybe_friend): Likewise. | |
1181 | * cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): Likewise. | |
1182 | (append_type_to_template_for_access_check): Likewise. | |
1183 | * semantics.c (check_accessibility_of_qualified_id): Likewise. | |
1184 | * pt.c (instantiate_class_template, instantiate_template ): Likewise. | |
1185 | (tsubst): Likewise. | |
1186 | (resolve_type_name_type): Likewise. | |
1187 | (append_type_to_template_for_access_check): Likewise. | |
1188 | ||
d597b3ce DS |
1189 | 2009-01-21 Dodji Seketeli <dodji@redhat.com> |
1190 | ||
1191 | PR c++/26693 | |
1192 | * decl2.c (grokfield): when a typedef appears in a | |
1193 | class, create the typedef variant type node for it. | |
1194 | (save_template_attributes): Creating typedef variant type node | |
1195 | here is now useless. | |
1196 | * decl.c (grokdeclarator): If the typedef'ed struct/class was | |
1197 | anonymous, set the proper type name to all its type variants. | |
1198 | * name-lookup.c (pushdecl_maybe_friend): Reuse the | |
1199 | set_underlying_type function to install typedef variant types. | |
1200 | * cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): New template accessor | |
1201 | macro. | |
1202 | (append_type_to_template_for_access_check): New entry points. | |
1203 | * semantics.c (check_accessibility_of_qualified_id): | |
1204 | When a typedef that is a member of a class appears in a template, | |
1205 | add it to the template. It will be ... | |
1206 | * pt.c (instantiate_class_template, instantiate_template ): ... access | |
1207 | checked at template instantiation time. | |
1208 | (tsubst): Handle the case of being called with NULL args. | |
1209 | (resolve_type_name_type): The type name should be the name of the | |
1210 | main type variant. | |
1211 | (append_type_to_template_for_access_check): New entry point. | |
1212 | ||
05134211 JM |
1213 | 2009-01-19 Jason Merrill <jason@redhat.com> |
1214 | ||
1215 | PR c++/23287 | |
1216 | * parser.c (cp_parser_unqualified_id): In a template, | |
1217 | accept ~identifier. | |
1218 | * typeck.c (lookup_destructor): Handle IDENTIFIER_NODE. | |
1219 | ||
1ceb2263 JM |
1220 | 2009-01-16 Jason Merrill <jason@redhat.com> |
1221 | ||
b7da27c2 JM |
1222 | PR c++/38877 |
1223 | * tree.c (lvalue_p_1): Allow non-fields in COMPONENT_REF. | |
1224 | * init.c (build_new): Don't call describable_type unless we | |
1225 | have an auto. | |
1226 | ||
db8470f6 JM |
1227 | PR c++/29470 |
1228 | * pt.c (tsubst_decl) [USING_DECL]: Propagate access flags. | |
1229 | ||
1ceb2263 JM |
1230 | PR c++/38579 |
1231 | * search.c (protected_accessible_p): N doesn't vary. | |
1232 | ||
16eba928 JM |
1233 | 2009-01-15 Jason Merrill <jason@redhat.com> |
1234 | ||
1235 | PR c++/38850 | |
1236 | * pt.c (tsubst_copy_and_build): Tell finish_call_expr to | |
1237 | accept hidden friends. | |
1238 | ||
a2712544 AP |
1239 | 2009-01-15 Andrew Pinski <andrew_pinski@playstation.sony.com> |
1240 | ||
1241 | PR C++/29388 | |
1242 | * decl.c (grokdeclarator): Check for a non namespace/class context. | |
1243 | ||
4af9e878 JM |
1244 | 2009-01-15 Jason Merrill <jason@redhat.com> |
1245 | ||
1246 | PR c++/36334 | |
1247 | PR c++/37646 | |
1248 | * tree.c (lvalue_p_1): Handle BASELINK. A COMPONENT_REF to | |
1249 | a function isn't necessarily an lvalue. Take tree, not const_tree. | |
1250 | (lvalue_p, real_lvalue_p): Take tree, not const_tree. | |
1251 | * typeck.c (lvalue_or_else): Likewise. | |
1252 | * cp-tree.h: Adjust prototypes. | |
1253 | ||
5fa0e853 SE |
1254 | 2009-01-15 Steve Ellcey <sje@cup.hp.com> |
1255 | ||
1256 | PR c++/38357 | |
1257 | * pt.c (tsubst): Check for NULL args. | |
1258 | ||
0efc4442 DS |
1259 | 2009-01-15 Dodji Seketeli <dodji@redhat.com> |
1260 | ||
1261 | PR c++/38636 | |
1262 | * name-lookup.c (pushtag): Don't create members to types that are not | |
1263 | being created. | |
1264 | ||
cee9035d NC |
1265 | 2009-01-14 Nick Clifton <nickc@redhat.com> |
1266 | ||
1267 | PR c++/37862 | |
1268 | * parser.c: Pass cp_id_kind computed in | |
1269 | cp_parser_postfix_dot_deref_expression to | |
1270 | cp_parser_primary_expression. | |
1271 | ||
a7cbc517 JJ |
1272 | 2009-01-13 Jakub Jelinek <jakub@redhat.com> |
1273 | ||
1274 | PR c++/38795 | |
1275 | * tree.c (cp_walk_subtrees): Handle REINTERPRET_CAST_EXPR, | |
1276 | STATIC_CAST_EXPR, CONST_CAST_EXPR and DYNAMIC_CAST_EXPR the same | |
1277 | as CAST_EXPR. | |
1278 | ||
b9f673eb JM |
1279 | 2009-01-12 Jason Merrill <jason@redhat.com> |
1280 | Steve Ellcey <sje@cup.hp.com> | |
1281 | ||
1282 | PR c++/35109 | |
1283 | * name-lookup.c (lookup_name_real): Keep looking past a hidden | |
1284 | binding. | |
1285 | ||
172a4594 DS |
1286 | 2009-01-12 Dodji Seketeli <dodji@redhat.com> |
1287 | ||
1288 | PR c++/36019 | |
1289 | * pt.c (parameter_of_template_p): New function. | |
1290 | * cp-tree.h: Declare it. | |
1291 | * name-lookup.c (binding_to_template_parms_of_scope_p): New | |
1292 | function. | |
1293 | (outer_binding): Take template parameters in account when looking for | |
1294 | a name binding. | |
1295 | ||
72114ca1 JM |
1296 | 2009-01-12 Jason Merrill <jason@redhat.com> |
1297 | ||
1298 | PR c++/31488 | |
1299 | * tree.c (pod_type_p): Return 1 for structs created by the back end. | |
1300 | ||
49f098f2 JJ |
1301 | 2009-01-12 Jakub Jelinek <jakub@redhat.com> |
1302 | ||
634b5df5 JJ |
1303 | PR c/32041 |
1304 | * parser.c (cp_parser_builtin_offsetof): Allow `->' in | |
1305 | offsetof member-designator, handle it as `[0].'. | |
1306 | ||
49f098f2 JJ |
1307 | PR c++/38794 |
1308 | * decl.c (start_function): If grokdeclarator hasn't returned | |
1309 | FUNCTION_DECL nor error_mark_node, issue diagnostics. | |
1310 | ||
f74d9c8f JJ |
1311 | 2009-01-11 Jakub Jelinek <jakub@redhat.com> |
1312 | ||
1313 | PR c++/36254 | |
1314 | * cp-gimplify.c (genericize_if_stmt): Renamed from ... | |
1315 | (gimplify_if_stmt): ... this. | |
1316 | (cp_gimplify_expr): Don't handle IF_STMT here. | |
1317 | (cp_genericize_r): Call genericize_if_stmt for IF_STMT. | |
1318 | ||
d67a3e2a AP |
1319 | 2009-01-10 Andrew Pinski <pinskia@gmail.com> |
1320 | ||
b726f5e6 AP |
1321 | PR c++/38648 |
1322 | * typeck.c (cp_build_modify_expr): Check for NULL current_function_decl. | |
1323 | ||
d67a3e2a AP |
1324 | PR c++/36695 |
1325 | * typeck2.c (build_functional_cast): Check for reference type and NULL | |
1326 | PARMS. | |
1327 | ||
32dbfb3c SE |
1328 | 2009-01-09 Steve Ellcey <sje@cup.hp.com> |
1329 | ||
1330 | * typeck.c (cp_build_unary_op): Check for ERROR_MARK. | |
1331 | ||
aee5c3ed JJ |
1332 | 2009-01-09 Jakub Jelinek <jakub@redhat.com> |
1333 | ||
1334 | PR c++/35335 | |
1335 | * error.c (dump_expr): Handle EXPR_STMT like BIND_EXPR. | |
1336 | ||
73f971b7 JC |
1337 | 2009-01-09 John F. Carr <jfc@mit.edu> |
1338 | ||
1339 | PR c++/37877 | |
1340 | * parser.c (cp_parser_class_specifier): Clear | |
1341 | parser->in_unbraced_linkage_specification_p while parsing class | |
1342 | specifiers. | |
1343 | ||
f5651df1 JJ |
1344 | 2009-01-07 Jakub Jelinek <jakub@redhat.com> |
1345 | ||
1346 | PR c++/38725 | |
1347 | * semantics.c (finish_goto_stmt): Convert destination to | |
1348 | void *. | |
1349 | ||
ffaf1e05 JM |
1350 | 2009-01-06 Jason Merrill <jason@redhat.com> |
1351 | ||
1352 | PR c++/35297 | |
1353 | PR c++/35477 | |
1354 | PR c++/35784 | |
1355 | PR c++/36846 | |
1356 | PR c++/38276 | |
1357 | * pt.c (check_default_tmpl_args): Don't complain about | |
1358 | out-of-order parameter packs in the enclosing class | |
1359 | or parameter packs after default args. | |
1360 | (coerce_template_parms): If we have more than one | |
1361 | parameter pack, don't flatten argument packs. | |
1362 | (template_args_equal): Handle argument packs. | |
1363 | (comp_template_args): Don't flatten argument packs. | |
1364 | (check_instantiated_arg): Split out from... | |
1365 | (check_instantiated_args): Here. Handle arg packs. | |
1366 | (convert_template_argument): Just check that nontype argument | |
1367 | packs have the right type. | |
1368 | ||
6f9b088b DS |
1369 | 2009-01-05 Dodji Seketeli <dodji@redhat.com> |
1370 | ||
1371 | PR c++/38472 | |
1372 | * typeck.c (type_after_usual_arithmetic_conversions): Fix a typo. | |
1373 | ||
8adee3e6 JM |
1374 | 2009-01-05 Jason Merrill <jason@redhat.com> |
1375 | ||
9bfea41b JM |
1376 | PR c++/38698 |
1377 | * typeck2.c (process_init_constructor_union): Handle union with | |
1378 | no fields. | |
1379 | ||
1380 | * mangle.c (write_expression): Remove mangling for zero-operand | |
1381 | casts. | |
1382 | ||
8adee3e6 JM |
1383 | PR c++/38701 |
1384 | * decl.c (cp_finish_decl): Clear DECL_INITIAL for invalid | |
1385 | defaulting. | |
1386 | ||
1387 | PR c++/38702 | |
1388 | * class.c (defaultable_fn_p): Only operator== can be a copy | |
1389 | assignment operator. | |
1390 | ||
fc94bfc5 JM |
1391 | 2009-01-02 Jason Merrill <jason@redhat.com> |
1392 | ||
1393 | PR c++/38698 | |
1394 | * typeck2.c (process_init_constructor_union): Handle excess | |
1395 | initializers. | |
1396 | (process_init_constructor_record): Likewise. | |
1397 | ||
1398 | PR c++/38684 | |
1399 | * typeck2.c (digest_init_r): Don't use process_init_constructor | |
1400 | for non-aggregate classes. | |
ad41bd84 JM |
1401 | |
1402 | \f | |
1403 | Copyright (C) 2009 Free Software Foundation, Inc. | |
1404 | ||
1405 | Copying and distribution of this file, with or without modification, | |
1406 | are permitted in any medium without royalty provided the copyright | |
1407 | notice and this notice are preserved. |