summaryrefslogtreecommitdiff
path: root/gcc/cp/ChangeLog
blob: 7f3acbd6c8bc197c2dacf184f023eddc90575f4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
2012-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/52521
	* parser.c (lookup_literal_operator): Return fn only if
	processed all arguments from args vector and argtypes is
	void_list_node.

2012-01-30  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51641
	* cp-tree.h (template_type_parameter_p): Declare new function.
    	(parameter_of_template_p): Remove
    	* pt.c (template_type_parameter_p): Define new function.
    	(parameter_of_template_p): Remove.
    	* name-lookup.c (binding_to_template_parms_of_scope_p): Don't rely
    	on parameter_of_template_p anymore.  Compare the level of the
    	template parameter to the depth of the template.

2011-12-15  Dodji Seketeli  <dodji@redhat.com>

	* call.c (standard_conversion, build_integral_nontype_arg_conv)
    	(build_new_op_1, convert_like_real, is_subseq)
    	(maybe_handle_implicit_object, maybe_handle_ref_bind, compare_ics)
    	(joust): Use next_conversion instead of accessing fields of struct
    	conversion directly.

2012-03-12  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/52299
	* pt.c (tsubst_copy_and_build, case COND_EXPR): Avoid bogus
	division by zero warnings.

2012-03-08  Paolo Carlini  <paolo.carlini@oracle.com>

	* typeck.c (build_array_ref, cp_build_addr_expr_1, convert_ptrmem,
	build_ptrmemfunc): Consistently forward the tsubst_flags_t
	parameter.
	* call.c (resolve_args): Likewise.

2012-03-07  Jason Merrill  <jason@redhat.com>

	PR c++/52521
	* mangle.c (write_literal_operator_name): The length comes after the
	operator prefix.

2012-03-05  Jakub Jelinek  <jakub@redhat.com>

	* pt.c (local_specializations): Change from htab_t into
	struct pointer_map_t *.
	(retrieve_local_specializations, register_local_specialization,
	tsubst_pack_expansion, instantiate_decl): Adjust users.
	(eq_local_specializations, hash_local_specialization): Remove.

2012-03-05  Jason Merrill  <jason@redhat.com>

	PR c++/51930
	* decl2.c (determine_visibility): Correct calculation of class
	args depth.
	* decl.c (check_tag_decl): Adjust warning.

	* method.c (synthesized_method_walk): Cleanups don't affect the EH
	spec either.

2012-03-03  Jason Merrill  <jason@redhat.com>

	* init.c (perform_member_init): Cope with uninstantiated NSDMI.

	Core 1270
	* call.c (build_aggr_conv): Call reshape_init.
	(convert_like_real): Likewise.
	* typeck2.c (process_init_constructor): Clear TREE_CONSTANT if
	not all constant.

	* mangle.c (write_nested_name): Use decl_mangling_context.
	(write_prefix, write_template_prefix): Likewise.

	PR c++/36797
	* mangle.c (write_expression): Improve diagnostic for TRAIT_EXPR.

	* class.c (add_method): Always build an OVERLOAD for using-decls.
	* search.c (lookup_member): Handle getting an OVERLOAD for a
	single function.

2012-03-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51989
	* typeck2.c (build_x_arrow): Take a tsubst_flags_t argument and
	propagate it.
	* cp-tree.h (build_x_arrow): Adjust prototype.
	* pt.c (tsubst_copy_and_build): Adjust call.
	* parser.c (cp_parser_postfix_dot_deref_expression): Likewise.

2012-03-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* name-lookup.c (binding_to_template_parms_of_scope_p): Clean up.

2012-02-29  Jason Merrill  <jason@redhat.com>

	PR c++/51930
	* decl.c (check_tag_decl): Move warning for misplaced attributes here.
	(shadow_tag): From here.
	* parser.c (cp_parser_explicit_instantiation): Don't warn here.

2012-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/52312
	* typeck.c (check_literal_operator_args): Initialize *long_double_p
	and *long_long_unsigned_p even if processing_template_decl.

2012-02-16  Jason Merrill  <jason@redhat.com>

	PR c++/52248
	* decl.c (define_label): Use timevar_cond_start/stop.

2012-02-16  Fabien ChĂȘne  <fabien@gcc.gnu.org>

	PR c++/52126
	* decl.c (xref_basetypes): call dependent_scope_p instead of
	dependent_type_p.

2012-02-16  Jason Merrill  <jason@redhat.com>

	PR c++/51415
	* error.c (dump_expr): Handle lambda closures specifically.

2012-02-14  Jason Merrill  <jason@redhat.com>

	* parser.c (cp_parser_explicit_instantiation): Give a warning
	for ignored attributes on explicit class instantiation.

2012-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/52247
	* pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
	lookup_label on label's name and set TREE_USED.

2012-02-14  Jason Merrill  <jason@redhat.com>

	PR c++/39055
	* decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.

2012-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR c/52181
	* decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
	newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.

2012-02-07  Jason Merrill  <jason@redhat.com>

	PR c++/51675
	* semantics.c (cx_check_missing_mem_inits): Handle unions.
	Fix constexpr default constructor logic.

	PR c++/52035
	* pt.c (tsubst): Strip uninstantiated typedef.

2012-02-06  Jason Merrill  <jason@redhat.com>

	PR c++/52088
	* cvt.c (build_expr_type_conversion): Check for template conversion.

2012-01-31  Jason Merrill  <jason@redhat.com>

	PR c++/52043
	* cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
	* pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
	(tsubst_pack_expansion): Check it.

2012-01-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51327
	* class.c (explain_non_literal_class): Correctly handle implicitly
	deleted constructors.

2012-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/51852
	* pt.c (tsubst_pack_expansion): Delete and restore
	local_specialization whenever need_local_specialization, not just
	when saved_local_specializations is non-NULL.

2012-01-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51370
	* error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
	as TREE_OPERAND (t, 1).

2012-01-24  Jason Merrill  <jason@redhat.com>

	PR c++/51917
	* decl.c (xref_basetypes): Check VEC_length instead of VEC_space.

	PR c++/51973
	* tree.c (called_fns_equal): Check template args.
	(cp_tree_equal): Call it.

2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	PR c++/51928
	* class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
	thunk for set_one_vmethod_tm_attributes.

2012-01-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51223
	* call.c (build_over_call): Check for error_mark_node as
	TREE_VALUE when default arguments are processed.

2012-01-23  Jason Merrill  <jason@redhat.com>

	PR c++/51930
	* decl2.c (determine_visibility): Check for visibility attribute
	on template specialization.

2012-01-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51398
	* pt.c (parameter_of_template_p): Skip error_mark_node parameters.

2012-01-23  Jason Merrill  <jason@redhat.com>

	PR c++/51925
	* class.c (add_method): Set OVL_USED for using-decls.
	* tree.c (ovl_scope): New.
	* cp-tree.h: Declare it.
	* parser.c (cp_parser_template_name): Use it.
	* semantics.c (baselink_for_fns): Likewise.
	* name-lookup.c (set_inherited_value_binding_p): Likewise.

2012-01-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51402
	* pt.c (lookup_template_class_1): Check context returned by
	tsubst for error_mark_node.

2012-01-19  Kai Tietz  <ktietz@redhat.com>

	PR c++/51344
	* decl2.c (save_template_attributes): Use merge_attributes
	instead of chaining up via TREE_CHAIN.

2012-01-19  Jason Merrill  <jason@redhat.com>

	PR c++/51889
	* class.c (finish_struct): Call add_method here for function usings.
	* semantics.c (finish_member_declaration): Not here.

2012-01-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51225
	* typeck2.c (store_init_value): Within a template guard
	cxx_constant_value with require_potential_constant_expression.
	* pt.c (convert_nontype_argument): Likewise.

2012-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/51854
	* mangle.c (write_template_arg_literal): Handle complex.

2012-01-16  Jason Merrill  <jason@redhat.com>

	PR c++/51827
	* mangle.c (mangle_decl): Don't mangle uninstantiated templates.

	PR c++/51868
	* typeck.c (build_static_cast_1): Handle bit-fields properly.

2012-01-13  Ian Lance Taylor  <iant@google.com>

	PR c++/50012
	* typeck.c (enum_cast_to_int): New static function.
	(cp_build_binary_op): When handling warn_sign_compare, don't test
	for TREE_NO_WARNING.  Do call enum_cast_to_int.
	* call.c (avoid_sign_compare_warnings): Remove static function.
	(build_new_op_1): Don't call avoid_sign_compare_warnings.

2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>

	* decl2.c: Do not include tree-mudflap.h
	* semantics.c: Likewise.

2012-01-13  Jason Merrill  <jason@redhat.com>

	PR c++/20681
	* semantics.c (finish_break_stmt): Avoid adding an unreachable
	BREAK_STMT.

	PR c++/51813
	* decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
	when reducing the visibility.

	PR c++/51620
	* class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.

2012-01-12  Jason Merrill  <jason@redhat.com>

	PR c++/51714
	* pt.c (value_dependent_expression_p): Treat STMT_EXPR as
	value-dependent.

2012-01-13  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51633
	* semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
	Set the pointer to the last block of the constructor to the
	current statement.
	(build_constexpr_constructor_member_initializers): Get
	build_data_member_initialization a chance to deal with more
	statements before we choke.

2012-01-12  Jason Merrill  <jason@redhat.com>

	PR c++/48051
	* mangle.c (write_expression): Mangle BASELINK scope if
	BASELINK_QUALIFIED_P.
	* search.c (adjust_result_of_qualified_name_lookup): Set
	BASELINK_QUALIFIED_P.
	* tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
	* parser.c (cp_parser_postfix_dot_deref_expression): Don't call
	adjust_result_of_qualified_name_lookup for non-qualified names.

	PR c++/51403
	* pt.c (unify): Handle error_mark_node.

2012-01-11  Jason Merrill  <jason@redhat.com>

	PR c++/51565
	* call.c (standard_conversion): For ptrmemfuncs, compare the
	static_fn_types.

	PR c++/51818
	* mangle.c (find_substitution): A type is only a substitution
	match if we're looking for a type.
	(write_nested_name): Use decl_mangling_context.

	* decl.c (decls_match): Assert that the arguments are decls.

	PR c++/51613
	* pt.c (resolve_overloaded_unification): Compare types with
	same_type_p, not decls_match.

2012-01-10  Jason Merrill  <jason@redhat.com>

	PR c++/51614
	* class.c (build_base_path): Diagnose ambiguous base.

	PR c++/51433
	* semantics.c (cxx_eval_call_expression): Always retry previously
	non-constant expressions.

2012-01-06  Jason Merrill  <jason@redhat.com>

	DR 686
	PR c++/47450
	* parser.c (cp_parser_new_expression): Set
	type_definition_forbidden_message.

	PR c++/6057
	PR c++/48051
	PR c++/50855
	PR c++/51322
	* mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
	THROW_EXPR, CONSTRUCTOR, OVERLOAD.  Fix PREINCREMENT_EXPR and
	PREDECREMENT_EXPR.
	(write_template_arg): Fix mangling of class-scope functions and
	argument packs.
	(mangle_decl): Update suggested -fabi-version argument.
	* operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
	DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
	* tree.c (dependent_name): No longer static.
	* cp-tree.h: Declare it.
	* pt.c (unify): Defer handling of unconverted functions.

	* mangle.c (mangle_decl): Don't generate mangling aliases
	for maybe-in-charge [cd]tors.

	* error.c (dump_expr): Print type of CONSTRUCTOR.

2012-01-05  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51541
	* parser.c (cp_parser_alias_declaration): Get out early upon
    	errors in the identifier or the attributes.

2012-01-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51064
	* pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
	the tree returned by build_x_binary_op.

2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51738
	* parser.c (cp_parser_postfix_open_square_expression): Handle
	postfix-expression [ braced-init-list ].

2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/29273
	* rtti.c (build_dynamic_cast_1): In case of T a pointer type,
	call decay_conversion on v.

2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/15867
	* decl.c (duplicate_decls): With -Wredundant-decls don't warn for
	declaration followed by specialization.

2012-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/51669
	* semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
	on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.

2012-01-02  Jason Merrill  <jason@redhat.com>

	DR 1359
	PR c++/51675
	* method.c (walk_field_subobs): Don't check for uninitialized
	fields in a union.
	(synthesized_method_walk): Check here.

	DR 325
	PR c++/51666
	* parser.c (cp_parser_cache_defarg): Split out...
	(cp_parser_parameter_declaration): ...from here.
	(cp_parser_save_nsdmi): Use it.
	(cp_parser_cache_group): Remove CPP_COMMA support.

2012-01-02  Dodji Seketeli  <dodji@redhat.com>

	PR c++/51462
	* semantics.c (cx_check_missing_mem_inits): Don't assert in case
    	of error.

2012-01-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/20140
	* typeck2.c (digest_init_r): Use copy_init when initializing
	an array of chars.

2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/16603
	* decl.c (build_enumerator): Don't call perform_integral_promotions
	on the value.

2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51379
	* typeck.c (build_reinterpret_cast_1): Implement resolution of
	DR 799.

2012-01-01  Fabien ChĂȘne  <fabien@gcc.gnu.org>

	* parser.c (cp_parser_using_declaration): Add a warning about
	deprecated access declarations when no errors were encountered
	while parsing the access declaration. Save the first token in
	order to emit the warning at the right place.

Copyright (C) 2012 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.