cp: PR c++/4361 * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated conversion operators go. (struct lang_decl_flags): Add template_conv_p and unused bitfields. (DECL_TEMPLATE_CONV_FN_P): New macro. * call.c (build_user_type_conversion_1): Don't check second type conversion of overload set first. * class.c (add_method): Make sure templated conversion operators all end up on slot 2. * lex.c (do_identifier): A conversion operator token might be satisfied by a templated conversion operator. * mangle.c (struct globals) Add internal_mangling_p member. (write_template_param): Do internal mangling, if needed. (mangle_conv_op_name_for_type): Request internal mangling. * pt.c (check_explicit_specialization): Use CLASSTYPE_FIRST_CONVERSION_SLOT. (template_parm_this_level_p): New function. (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P. * search.c (lookup_fn_fields_1): Template conversions will be on the first slot. * typeck.c (build_component_ref): Preserve the type of an conversion operator name on the overload type. (build_x_function_call): Retrieve the conversion operator name. testsuite: * g++.dg/template/conv1.C: New test. * g++.dg/template/conv2.C: New test. * g++.dg/template/conv3.C: New test. * g++.dg/template/conv4.C: New test. From-SVN: r50889
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
.cvsignore | Loading commit data... | |
ChangeLog | Loading commit data... | |
ChangeLog.1 | Loading commit data... | |
ChangeLog.2 | Loading commit data... | |
ChangeLog.egcs | Loading commit data... | |
Make-lang.in | Loading commit data... | |
NEWS | Loading commit data... | |
call.c | Loading commit data... | |
cfns.gperf | Loading commit data... | |
cfns.h | Loading commit data... | |
class.c | Loading commit data... | |
config-lang.in | Loading commit data... | |
cp-lang.c | Loading commit data... | |
cp-tree.def | Loading commit data... | |
cp-tree.h | Loading commit data... | |
cvt.c | Loading commit data... | |
decl.c | Loading commit data... | |
decl.h | Loading commit data... | |
decl2.c | Loading commit data... | |
dump.c | Loading commit data... | |
error.c | Loading commit data... | |
except.c | Loading commit data... | |
expr.c | Loading commit data... | |
friend.c | Loading commit data... | |
g++.1 | Loading commit data... | |
g++spec.c | Loading commit data... | |
init.c | Loading commit data... | |
lang-options.h | Loading commit data... | |
lang-specs.h | Loading commit data... | |
lex.c | Loading commit data... | |
lex.h | Loading commit data... | |
mangle.c | Loading commit data... | |
method.c | Loading commit data... | |
mpw-config.in | Loading commit data... | |
mpw-make.sed | Loading commit data... | |
operators.def | Loading commit data... | |
optimize.c | Loading commit data... | |
parse.y | Loading commit data... | |
pt.c | Loading commit data... | |
ptree.c | Loading commit data... | |
repo.c | Loading commit data... | |
rtti.c | Loading commit data... | |
search.c | Loading commit data... | |
semantics.c | Loading commit data... | |
spew.c | Loading commit data... | |
tree.c | Loading commit data... | |
typeck.c | Loading commit data... | |
typeck2.c | Loading commit data... |