OSDN Git Service

eecdd1a1941dbbaf09610f229bed26abe300db46
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
2
3         PR c++/43418
4         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
5         false, in the cp_parser_expression_statement call.
6
7 2010-03-05  Jason Merrill  <jason@redhat.com>
8
9         * mangle.c (mangle_decl): Give name collision error even without
10         ASM_OUTPUT_DEF.
11
12 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
13
14         * pt.c (process_partial_specialization): Use error_n instead of
15         error.
16
17 2010-03-03  Jason Merrill  <jason@redhat.com>
18
19         PR c++/12909
20         * mangle.c (mangle_decl): Handle VAR_DECL, too.
21
22 2010-03-03  Jason Merrill  <jason@redhat.com>
23
24         PR c++/12909
25         * mangle.c: Include cgraph.h.
26         (mangle_decl): If the mangled name will change in a later
27         ABI version, make the later mangled name an alias.
28         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
29         * Make-lang.in (mangle.o): Depend on cgraph.h.
30         * method.c (make_alias_for): Handle VAR_DECL, too.
31         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
32         * tree.c (no_linkage_check): Adjust.
33         * decl.c (maybe_commonize_var): Adjust.
34         * cp-tree.h: Adjust.
35
36 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
37
38         * pt.c (redeclare_class_template): Use error_n and inform_n.
39
40 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
41
42         PR c++/42748
43         * cp-tree.h (push_tinst_level): Declare.
44         (pop_tinst_level): Likewise.
45         * pt.c (push_tinst_level): Give it external linkage.
46         (pop_tinst_level): Likewise.
47         * mangle.c (mangle_decl_string): Set the source location to that
48         of the decl while mangling.
49
50 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
51
52         PR c++/42054
53         * pt.c (redeclare_class_template): Return false if there are erroneous
54         template parameters.
55
56 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
57
58         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
59         -ftemplate-depth=.
60
61 2010-02-24  Jason Merrill  <jason@redhat.com>
62
63         PR c++/12909
64         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
65
66         * class.c (layout_class_type): Don't give -Wabi warning for a bug
67         in a previous ABI version.
68
69 2010-02-23  Jason Merrill  <jason@redhat.com>
70
71         PR c++/43143
72         * typeck2.c (digest_init_r): Accept value init of array.
73
74 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
75
76         PR c++/43126
77         * typeck.c (convert_arguments): Update error message.
78
79 2010-02-22  Mike Stump  <mikestump@comcast.net>
80
81         PR c++/43125
82         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
83
84 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
85
86         PR c++/23510
87         * error.c (print_instantiation_partial_context_line): New.
88         (print_instantiation_partial_context): Print at most 12 contexts,
89         skip the rest with a message.
90
91 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
92
93         PR c++/42824
94         * pt.c (lookup_template_class): Better support of specialization
95         of member of class template implicit instantiation.
96
97 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
98
99         PR c++/35669
100         * call.c (conversion_null_warnings): Replace -Wconversion with
101         -Wconversion-null.
102         * cvt.c (build_expr_type_conversion): Likewise.
103
104 2010-02-18  Jason Merrill  <jason@redhat.com>
105
106         PR c++/42837
107         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
108
109         PR c++/43108
110         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
111         C build_binary_op.
112         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
113         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
114
115         PR c++/43070
116         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
117
118         PR c++/26261
119         PR c++/43101
120         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
121         (maybe_update_decl_type): New fn.
122         * parser.c (cp_parser_init_declarator): Use it.
123
124         PR c++/43109
125         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
126
127 2010-02-17  Jason Merrill  <jason@redhat.com>
128
129         PR c++/43075
130         * call.c (build_over_call): Don't create zero-sized assignments.
131         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
132         * cp-objcp-common.c (cp_expr_size): Remove.
133         * cp-tree.h: Remove prototype.
134
135         PR c++/43069
136         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
137         decl we looked up doesn't match.
138
139         PR c++/43093
140         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
141         have an INIT_EXPR anymore.
142
143         PR c++/43079
144         * pt.c (convert_nontype_argument): Change assert to test.
145
146 2010-02-16  Jason Merrill  <jason@redhat.com>
147
148         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
149
150         PR c++/43031
151         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
152         VIEW_CONVERT_EXPR for conversions between structural equality types
153         that the back end can't tell are the same.
154
155         PR c++/43036
156         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
157         cv-quals from element here.
158         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
159
160 2010-02-14  Jason Merrill  <jason@redhat.com>
161
162         PR c++/41997
163         * semantics.c (finish_compound_literal): Use
164         cp_apply_type_quals_to_decl when creating a static variable.
165
166 2010-02-12  Jason Merrill  <jason@redhat.com>
167
168         PR c++/43024
169         * name-lookup.h (current_binding_level): Check for null
170         cp_function_chain.
171
172 2010-02-12  Jason Merrill  <jason@redhat.com>
173
174         PR c++/43054
175         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
176
177 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
178
179         PR c++/43033
180         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
181         instead of x.
182
183 2010-02-10  Jason Merrill  <jason@redhat.com>
184
185         PR c++/41896
186         * semantics.c (outer_lambda_capture_p): Revert.
187         (add_capture): Only finish_member_declaration if
188         we're in the lambda class.
189         (register_capture_members): New.
190         * cp-tree.h: Declare it.
191         * parser.c (cp_parser_lambda_expression): Call it.
192
193 2010-02-10  Jason Merrill  <jason@redhat.com>
194
195         PR c++/41896
196         * semantics.c (outer_lambda_capture_p): Use current_function_decl
197         instead of current_class_type.
198
199 2010-02-10  Jason Merrill  <jason@redhat.com>
200
201         PR c++/42983, core issue 906
202         * method.c (defaultable_fn_check): Check virtualness.
203
204 2010-02-10  Jason Merrill  <jason@redhat.com>
205
206         PR c++/43016
207         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
208
209 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
210
211         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
212         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
213         translation.
214         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
215         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
216         (cp_parser_parameter_declaration)
217         (cp_parser_exception_specification_opt)
218         (cp_parser_exception_declaration): Likewise.
219         * pt.c (check_default_tmpl_args): Likewise.
220         * search.c (lookup_field_r): Likewise.
221
222 2010-02-09  Jason Merrill  <jason@redhat.com>
223
224         PR c++/42399
225         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
226
227 2010-02-09  Jason Merrill  <jason@redhat.com>
228
229         PR c++/42370
230         * decl2.c (change_return_type): New fn.
231         * semantics.c (apply_lambda_return_type): Use it.
232         * cp-tree.h: Declare it.
233
234 2010-02-05  Richard Guenther  <rguenther@suse.de>
235
236         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
237         * cp-lang.c: Include gt-cp-cp-lang.h.
238         * config-lang.in (gtfiles): Add cp/cp-lang.c.
239
240 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
241
242         PR c++/42915
243         * typeck.c (get_template_parms_of_dependent_type): Try getting
244         the template parameters fromt the type itself first.
245
246 2010-02-03  Jason Merrill  <jason@redhat.com>
247
248         PR c++/4926
249         PR c++/38600
250         * mangle.c (write_unqualified_id): Split out from write_expression.
251         (write_unqualified_name): Call it.
252         (write_member_name): Likewise.
253         (write_expression): Support TEMPLATE_ID_EXPR.
254         Disambiguate operator names.
255
256         PR c++/12909
257         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
258         -fabi-version=4.
259
260 2010-02-02  Jason Merrill  <jason@redhat.com>
261
262         PR c++/41090
263         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
264         * optimize.c (clone_body): Remap their initializers when making base
265         variants.
266         (maybe_clone_body): Complain if multiple clones aren't safe.
267
268 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
269
270         PR c++/42758
271         PR c++/42634
272         PR c++/42336
273         PR c++/42797
274         PR c++/42880
275         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
276         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
277         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
278         * pt.c (coerce_template_parms, type_unification_real,
279         expand_template_argument_pack, coerce_template_parameter_pack):
280         Set the non default template args count.
281         (current_template_args): Always set non defaulted
282         template args count when compiled with --enable-checking
283         (tsubst_template_args, type_unification_real): Propagate the non
284         defaulted template args count.
285         * error.c (get_non_default_template_args_count): Renamed
286         count_non_default_template_args into this. Don't calculate the
287         non default template argument count anymore. Use the new
288         accessor macros above to get it.
289         (dump_template_argument_list, dump_type, dump_decl,
290         dump_template_parms): Adjust.
291         * parser.c (cp_parser_template_argument_list): Always set defaulted
292         template args count when compiled with --enable-checking.
293
294 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
295
296         * decl.c (redeclaration_error_message): Wrap the return messages into
297         G_() for easy translation.
298
299 2010-01-28  Jason Merrill  <jason@redhat.com>
300
301         PR c++/42880
302         * semantics.c (begin_class_definition): Don't use type_as_string.
303
304 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
305
306         PR c++/42713
307         PR c++/42820
308         * typeck.c (get_template_parms_of_dependent_type): Factorized
309         this out of incompatible_template_type_parms_p
310         (incompatible_dependent_types_p): Renamed
311         incompatible_template_type_parms_p into this. Make it detect
312         two incompatible dependent typedefs too.
313         (structural_comptypes): Use incompatible_dependent_types_p.
314         * pt.c (get_template_info):
315         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
316
317 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
318             Jason Merrill  <jason@redhat.com>
319
320         * mangle.c (write_type): Mangle transparent record as member type.
321         * semantics.c (begin_class_definition): Recognize decimal classes
322         and set TYPE_TRANSPARENT_AGGR.
323
324 2010-01-20  Jason Merrill  <jason@redhat.com>
325
326         PR c++/42338
327         * mangle.c (write_expression): Handle tree codes that have extra
328         arguments in the middle-end.
329
330 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
331
332         PR c++/42038
333         * except.c (expand_start_catch_block): Deal correctly with
334         do_begin_catch returning error_mark_node.
335
336 2010-01-20  Jason Merrill  <jason@redhat.com>
337
338         PR c++/41788
339         * class.c (layout_class_type): Set packed_maybe_necessary for packed
340         non-PODs.
341
342         PR c++/41920
343         * semantics.c (build_lambda_object): Call mark_used on captured
344         variables.
345
346         PR c++/40750
347         * decl.c (grokdeclarator): Clear type_quals for a member function
348         declared using a typedef.  Don't complain about adding cv-quals
349         to a function typedef in C++0x mode.
350
351 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
352
353         * decl.c (create_array_type_for_decl): Remove set but not used
354         variable error_msg.  Remove break stmts after return stmts.
355
356 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
357
358         * error.c (dump_template_parms, count_non_default_template_args):
359         Revert fix of PR c++/42634.
360
361 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
362
363         PR c++/42634
364         * error.c (dump_template_parms): Use innermost template
365         arguments before calling count_non_default_template_args.
366         (count_non_default_template_args): We are being called with
367         template innermost arguments now. There is no need to ensure
368         that again.
369
370 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
371
372         PR c++/42766
373         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
374
375 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
376
377         PR c++/42697
378         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
379
380 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
381
382         PR c++/42697
383         *pt.c (tsubst_decl): Get the arguments of a specialization from
384         the specialization template, not from the most general template.
385
386 2010-01-16  Jason Merrill  <jason@redhat.com>
387
388         PR c++/42761
389         * semantics.c (finish_decltype_type): Within a template, treat
390         unresolved CALL_EXPR as dependent.
391
392 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
393
394         * error.c (dump_template_parms,count_non_default_template_args):
395         Revert changes of PR c++/42634.
396
397 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
398
399         PR middle-end/42674
400         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
401         functions with noreturn attribute.
402
403 2010-01-14  Jason Merrill  <jason@redhat.com>
404
405         PR c++/42701
406         * call.c (build_new_method_call): Don't free the vec here.
407
408         PR c++/42655
409         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
410
411 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
412
413         PR c++/42634
414         * error.c (dump_template_parms): Use innermost template
415         arguments before calling count_non_default_template_args.
416         (count_non_default_template_args): We are being called with
417         template innermost arguments now. There is no need to ensure
418         that again.
419
420 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
421
422         c++/40155
423         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
424         arguments that were previously deduced.
425
426 2010-01-05  Jason Merrill  <jason@redhat.com>
427
428         * pt.c (unify_pack_expansion): Handle deduction from init-list.
429         * call.c (build_over_call): Don't complain about it.
430
431 2010-01-04  Jason Merrill  <jason@redhat.com>
432
433         PR c++/42555
434         * pt.c (tsubst_decl): Don't apply type attributes in place.
435
436         PR c++/42567
437         * semantics.c (describable_type): Remove decltype comment and
438         semantics.
439
440
441 \f
442 Copyright (C) 2010 Free Software Foundation, Inc.
443
444 Copying and distribution of this file, with or without modification,
445 are permitted in any medium without royalty provided the copyright
446 notice and this notice are preserved.