aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/ChangeLog
blob: 57912b9ba1a9a96cd51884ed30329d1ba71bba35 (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
2013-02-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/56239
	* parser.c (cp_parser_token_starts_cast_expression): Renamed to...
	(cp_parser_tokens_start_cast_expression): ... this.  Change parameter
	to cp_parser *, call cp_lexer_peek_token first.  For CPP_OPEN_PAREN,
	return true only if 2nd token isn't CPP_CLOSE_PAREN.
	(cp_parser_cast_expression): Adjust caller.

	PR c++/56237
	* decl.c (push_local_name): Look at DECL_DISCRIMINATOR (t)
	only if DECL_DISCRIMINATOR_SET_P (t) rather than just
	DECL_LANG_SPECIFIC (t).

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

	PR c++/56235
	* method.c (do_build_copy_constructor): Don't bother turning
	scalars from lvalues to xvalues.
	(do_build_copy_assign): Likewise.

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

	* parser.c (cp_parser_enum_specifier): Check for error_mark_node.

2013-02-05  Jason Merrill  <jason@redhat.com>

	PR c++/54122
	* tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for
	METHOD_TYPE.

	PR c++/56177
	* decl.c (start_preparsed_function): Update restype if we change
	decl1.

	PR c++/56208
	* pt.c (fn_type_unification): Discard any access checks from
	substituting explicit args.

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

	PR c++/56162
	PR c++/56104
	* typeck.c (get_member_function_from_ptrfunc): Fix
	ptrmemfunc_vbit_in_delta case.

2013-01-29  Jason Merrill  <jason@redhat.com>

	PR libstdc++/54314
	* class.c (build_ctor_vtbl_group): Give construction vtables
	hidden visibility.

2013-01-25  Jason Merrill  <jason@redhat.com>

	PR c++/56095
	* pt.c (convert_nontype_argument_function): Handle invalid input.
	(convert_nontype_argument): Likewise.

	PR c++/56104
	* typeck.c (get_member_function_from_ptrfunc): Optimize if the
	dynamic type has no virtual functions.

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

	PR c++/55944
	* decl.c (check_initializer): Use TARGET_EXPR_DIRECT_INIT_P only
	on TARGET_EXPR nodes.

2013-01-22  Jason Merrill  <jason@redhat.com>

	PR c++/56071
	* pt.c (maybe_instantiate_noexcept): Don't defer access checks.

2013-01-22  Dodji Seketeli  <dodji@redhat.com>

	PR c++/53609
	* pt.c (argument_pack_element_is_expansion_p)
	(make_argument_pack_select, use_pack_expansion_extra_args_p)
	(gen_elem_of_pack_expansion_instantiation): New static functions.
	(tsubst): When looking through an ARGUMENT_PACK_SELECT tree node,
	look through the possibly resulting pack expansion as well.
	(tsubst_pack_expansion): Use use_pack_expansion_extra_p to
	generalize when to use the PACK_EXPANSION_EXTRA_ARGS mechanism.
	Use gen_elem_of_pack_expansion_instantiation to build the
	instantiation piece-wise.  Don't use arg_from_parm_pack_p anymore,
	as gen_elem_of_pack_expansion_instantiation and the change in
	tsubst above generalize this particular case.
	(arg_from_parm_pack_p): Remove this for it's not used by
	tsubst_pack_expansion anymore.

2013-01-21  Jason Merrill  <jason@redhat.com>

	PR c++/56059
	* tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default
	template args count.

2013-01-18  Jason Merrill  <jason@redhat.com>

	PR target/54908
	* decl2.c (get_local_tls_init_fn): New.
	(get_tls_init_fn): Handle flag_extern_tls_init.  Don't bother
	with aliases for internal variables.  Don't use weakrefs if
	the variable needs destruction.
	(generate_tls_wrapper): Mark the wrapper as const if no
	initialization is needed.
	(handle_tls_init): Don't require aliases.

2013-01-15  Dodji Seketeli  <dodji@redhat.com>

	PR c++/55663
	* pt.c (coerce_innermost_template_parms): New static function.
	(instantiate_alias_template):  Use it here.

2013-01-09  Jason Merrill  <jason@redhat.com>

	PR c++/55878
	* rtti.c (build_typeid, get_typeid): Add complain parm.
	(get_tinfo_decl_dynamic): Likewise.
	* cp-tree.h, parser.c, pt.c: Adjust.

	PR c++/55893
	* decl.c (cp_finish_decl): Clear TREE_READONLY if the variable
	needs destruction.

2013-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/48418
	* typeck.c (cp_build_binary_op): For LSHIFT_EXPR and RSHIFT_EXPR,
	call maybe_constant_value for the negative or too big shift
	count warnings.

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

	PR c++/55801
	* decl2.c (var_needs_tls_wrapper): Return false when error_operand_p
	of the argument is true.

2013-01-08  Joel Brobecker  <brobecker@adacore.com>

	* parser.c (cp_parser_initializer_list): Move declaration
	of variable non_const to start of lexical block.

2013-01-07  Jason Merrill  <jason@redhat.com>

	PR c++/55753
	* tree.c (build_aggr_init_expr): Do nothing in a template.
	* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Strip an ADDR_EXPR off
	a FUNCTION_DECL before tsubsting.

2013-01-04  Dodji Seketeli  <dodji@redhat.com>

	PR c++/52343
	* pt.c (check_instantiated_arg): Allow type template arguments.

2013-01-04  Jason Merrill  <jason@redhat.com>

	PR c++/55877
	* decl.c (reset_type_linkage, bt_reset_linkage): New.
	(grokdeclarator): Use reset_type_linkage.
	* name-lookup.c (binding_table_foreach): Handle null table.
	* tree.c (decl_anon_ns_mem_p): Check TYPE_MAIN_DECL, not TYPE_NAME.

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

	PR c++/54526 (again)
	* parser.c (cp_parser_template_id): Revert core of previous change
	(keep adjusted inform message).

2013-01-03  Jason Merrill  <jason@redhat.com>

	PR c++/55419
	PR c++/55753
	* pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Don't touch
	TREE_CONSTANT.

	PR c++/55842
	* semantics.c (trait_expr_value): Call maybe_instantiate_noexcept.

	PR c++/55856
	* semantics.c (build_data_member_initialization): Handle DECL_EXPR.

	PR c++/53650
	* call.c (type_has_extended_temps): New.
	* cp-tree.h: Declare it.
	* decl.c (check_initializer): Use build_aggr_init for arrays
	if it is false.
	* init.c (build_vec_init): Avoid mixed signed/unsigned arithmetic.

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

	PR c++/54325
	* call.c (build_new_method_call_1): Don't use build_value_init for
	user-provided default constructors.

	* decl.c (check_default_argument): Use LOOKUP_IMPLICIT.

	PR c++/55032
	PR c++/55245
	* tree.c (build_cplus_array_type): Copy layout information
	to main variant if necessary.

Copyright (C) 2013 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.