OSDN Git Service

PR c++/51641 - Lookup finds enclosing class member instead of template parameter
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2012-01-30  Dodji Seketeli  <dodji@redhat.com>
2
3         PR c++/51641
4         * cp-tree.h (template_type_parameter_p): Declare new function.
5         (parameter_of_template_p): Remove
6         * pt.c (template_type_parameter_p): Define new function.
7         (parameter_of_template_p): Remove.
8         * name-lookup.c (binding_to_template_parms_of_scope_p): Don't rely
9         on parameter_of_template_p anymore.  Compare the level of the
10         template parameter to the depth of the template.
11
12 2012-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
13
14         PR c++/51327
15         * class.c (explain_non_literal_class): Correctly handle implicitly
16         deleted constructors.
17
18 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
19
20         PR c++/51852
21         * pt.c (tsubst_pack_expansion): Delete and restore
22         local_specialization whenever need_local_specialization, not just
23         when saved_local_specializations is non-NULL.
24
25 2012-01-26  Paolo Carlini  <paolo.carlini@oracle.com>
26
27         PR c++/51370
28         * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
29         as TREE_OPERAND (t, 1).
30
31 2012-01-24  Jason Merrill  <jason@redhat.com>
32
33         PR c++/51917
34         * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
35
36         PR c++/51973
37         * tree.c (called_fns_equal): Check template args.
38         (cp_tree_equal): Call it.
39
40 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
41             Patrick Marlier  <patrick.marlier@gmail.com>
42
43         PR c++/51928
44         * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
45         thunk for set_one_vmethod_tm_attributes.
46
47 2012-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
48
49         PR c++/51223
50         * call.c (build_over_call): Check for error_mark_node as
51         TREE_VALUE when default arguments are processed.
52
53 2012-01-23  Jason Merrill  <jason@redhat.com>
54
55         PR c++/51930
56         * decl2.c (determine_visibility): Check for visibility attribute
57         on template specialization.
58
59 2012-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
60
61         PR c++/51398
62         * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
63
64 2012-01-23  Jason Merrill  <jason@redhat.com>
65
66         PR c++/51925
67         * class.c (add_method): Set OVL_USED for using-decls.
68         * tree.c (ovl_scope): New.
69         * cp-tree.h: Declare it.
70         * parser.c (cp_parser_template_name): Use it.
71         * semantics.c (baselink_for_fns): Likewise.
72         * name-lookup.c (set_inherited_value_binding_p): Likewise.
73
74 2012-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
75
76         PR c++/51402
77         * pt.c (lookup_template_class_1): Check context returned by
78         tsubst for error_mark_node.
79
80 2012-01-19  Kai Tietz  <ktietz@redhat.com>
81
82         PR c++/51344
83         * decl2.c (save_template_attributes): Use merge_attributes
84         instead of chaining up via TREE_CHAIN.
85
86 2012-01-19  Jason Merrill  <jason@redhat.com>
87
88         PR c++/51889
89         * class.c (finish_struct): Call add_method here for function usings.
90         * semantics.c (finish_member_declaration): Not here.
91
92 2012-01-18  Paolo Carlini  <paolo.carlini@oracle.com>
93
94         PR c++/51225
95         * typeck2.c (store_init_value): Within a template guard
96         cxx_constant_value with require_potential_constant_expression.
97         * pt.c (convert_nontype_argument): Likewise.
98
99 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
100
101         PR c++/51854
102         * mangle.c (write_template_arg_literal): Handle complex.
103
104 2012-01-16  Jason Merrill  <jason@redhat.com>
105
106         PR c++/51827
107         * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
108
109         PR c++/51868
110         * typeck.c (build_static_cast_1): Handle bit-fields properly.
111
112 2012-01-13  Ian Lance Taylor  <iant@google.com>
113
114         PR c++/50012
115         * typeck.c (enum_cast_to_int): New static function.
116         (cp_build_binary_op): When handling warn_sign_compare, don't test
117         for TREE_NO_WARNING.  Do call enum_cast_to_int.
118         * call.c (avoid_sign_compare_warnings): Remove static function.
119         (build_new_op_1): Don't call avoid_sign_compare_warnings.
120
121 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
122
123         * decl2.c: Do not include tree-mudflap.h
124         * semantics.c: Likewise.
125
126 2012-01-13  Jason Merrill  <jason@redhat.com>
127
128         PR c++/20681
129         * semantics.c (finish_break_stmt): Avoid adding an unreachable
130         BREAK_STMT.
131
132         PR c++/51813
133         * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
134         when reducing the visibility.
135
136         PR c++/51620
137         * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
138
139 2012-01-12  Jason Merrill  <jason@redhat.com>
140
141         PR c++/51714
142         * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
143         value-dependent.
144
145 2012-01-13  Dodji Seketeli  <dodji@redhat.com>
146
147         PR c++/51633
148         * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
149         Set the pointer to the last block of the constructor to the
150         current statement.
151         (build_constexpr_constructor_member_initializers): Get
152         build_data_member_initialization a chance to deal with more
153         statements before we choke.
154
155 2012-01-12  Jason Merrill  <jason@redhat.com>
156
157         PR c++/48051
158         * mangle.c (write_expression): Mangle BASELINK scope if
159         BASELINK_QUALIFIED_P.
160         * search.c (adjust_result_of_qualified_name_lookup): Set
161         BASELINK_QUALIFIED_P.
162         * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
163         * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
164         adjust_result_of_qualified_name_lookup for non-qualified names.
165
166         PR c++/51403
167         * pt.c (unify): Handle error_mark_node.
168
169 2012-01-11  Jason Merrill  <jason@redhat.com>
170
171         PR c++/51565
172         * call.c (standard_conversion): For ptrmemfuncs, compare the
173         static_fn_types.
174
175         PR c++/51818
176         * mangle.c (find_substitution): A type is only a substitution
177         match if we're looking for a type.
178         (write_nested_name): Use decl_mangling_context.
179
180         * decl.c (decls_match): Assert that the arguments are decls.
181
182         PR c++/51613
183         * pt.c (resolve_overloaded_unification): Compare types with
184         same_type_p, not decls_match.
185
186 2012-01-10  Jason Merrill  <jason@redhat.com>
187
188         PR c++/51614
189         * class.c (build_base_path): Diagnose ambiguous base.
190
191         PR c++/51433
192         * semantics.c (cxx_eval_call_expression): Always retry previously
193         non-constant expressions.
194
195 2012-01-06  Jason Merrill  <jason@redhat.com>
196
197         DR 686
198         PR c++/47450
199         * parser.c (cp_parser_new_expression): Set
200         type_definition_forbidden_message.
201
202         PR c++/6057
203         PR c++/48051
204         PR c++/50855
205         PR c++/51322
206         * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
207         THROW_EXPR, CONSTRUCTOR, OVERLOAD.  Fix PREINCREMENT_EXPR and
208         PREDECREMENT_EXPR.
209         (write_template_arg): Fix mangling of class-scope functions and
210         argument packs.
211         (mangle_decl): Update suggested -fabi-version argument.
212         * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
213         DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
214         * tree.c (dependent_name): No longer static.
215         * cp-tree.h: Declare it.
216         * pt.c (unify): Defer handling of unconverted functions.
217
218         * mangle.c (mangle_decl): Don't generate mangling aliases
219         for maybe-in-charge [cd]tors.
220
221         * error.c (dump_expr): Print type of CONSTRUCTOR.
222
223 2012-01-05  Dodji Seketeli  <dodji@redhat.com>
224
225         PR c++/51541
226         * parser.c (cp_parser_alias_declaration): Get out early upon
227         errors in the identifier or the attributes.
228
229 2012-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
230
231         PR c++/51064
232         * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
233         the tree returned by build_x_binary_op.
234
235 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
236
237         PR c++/51738
238         * parser.c (cp_parser_postfix_open_square_expression): Handle
239         postfix-expression [ braced-init-list ].
240
241 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
242
243         PR c++/29273
244         * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
245         call decay_conversion on v.
246
247 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
248
249         PR c++/15867
250         * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
251         declaration followed by specialization.
252
253 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
254
255         PR c++/51669
256         * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
257         on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
258
259 2012-01-02  Jason Merrill  <jason@redhat.com>
260
261         DR 1359
262         PR c++/51675
263         * method.c (walk_field_subobs): Don't check for uninitialized
264         fields in a union.
265         (synthesized_method_walk): Check here.
266
267         DR 325
268         PR c++/51666
269         * parser.c (cp_parser_cache_defarg): Split out...
270         (cp_parser_parameter_declaration): ...from here.
271         (cp_parser_save_nsdmi): Use it.
272         (cp_parser_cache_group): Remove CPP_COMMA support.
273
274 2012-01-02  Dodji Seketeli  <dodji@redhat.com>
275
276         PR c++/51462
277         * semantics.c (cx_check_missing_mem_inits): Don't assert in case
278         of error.
279
280 2012-01-02  Paolo Carlini  <paolo.carlini@oracle.com>
281
282         PR c++/20140
283         * typeck2.c (digest_init_r): Use copy_init when initializing
284         an array of chars.
285
286 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
287
288         PR c++/16603
289         * decl.c (build_enumerator): Don't call perform_integral_promotions
290         on the value.
291
292 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
293
294         PR c++/51379
295         * typeck.c (build_reinterpret_cast_1): Implement resolution of
296         DR 799.
297
298 2012-01-01  Fabien ChĂȘne  <fabien@gcc.gnu.org>
299
300         * parser.c (cp_parser_using_declaration): Add a warning about
301         deprecated access declarations when no errors were encountered
302         while parsing the access declaration. Save the first token in
303         order to emit the warning at the right place.
304 \f
305 Copyright (C) 2012 Free Software Foundation, Inc.
306
307 Copying and distribution of this file, with or without modification,
308 are permitted in any medium without royalty provided the copyright
309 notice and this notice are preserved.