* decl.c (start_decl): Don't allow duplicate definitions of static data members. * call.c (build_user_type_conversion_1): Handle user-defined template conversion operators correctly. * decl2.c (build_expr_from_tree): Issue an error message if the object in a COMPONENT_REF is a TEMPLATE_DECL. * typeck.c (incomplete_type_error): Handle TEMPLATE_TYPE_PARMs. * class.c (is_local_class): New function. * cp-tree.h (is_local_class): Declare it. (last_tree): Likewise. (begin_tree): Likewise. (end_tree): Likewise. (lookup_template_class): Change prototype. * decl.c (cp_finish_decl): Check for NULL where necesary. Consider FUNCTION_DECLS to declare objects with top-level binding, when calling make_decl_rtl. (grokdeclarator): Give members of local classes internal linkage. (start_function): Remove declaration of last_tree. (finish_function): Set flag_keep_inline_functions around call to rest_of_compilation if we are processing a member function in a local class. (start_method): Call push_template_decl for member functions of local classes in template functions. * decl2.c (import_export_decl): Don't give external linkage to instantiations of templates with internal linkage. * parse.y (last_tree): Remove declaration. (template_type): Pass extra parameter to lookup_template_class. (self_template_type): Likewise. (structsp): Move call to reset_specialization into left_curly. (left_curly): Call reset_specialization, and begin_tree. * pt.c (saved_trees): New variable. (mangle_class_name_for_template): Change prototype. Use additional function context to name local classes in templates correctly. (classtype_mangled_name): Pass the context. (push_template_decl): Handle local classes and templates, and member functions for such classes. (convert_nontype_parameter): Fix handling of pointer-to-member constants. (lookup_template_class): Handle local classes in templates. (tsubst): Likewise. Don't assume that template instantiations have external linkage; pay attention to the template declaration. (mark_decl_instantiated): Likewise. (begin_tree): New function. (end_tree): Likewise. * decl.c (xref_basetypes): Don't call complete_type for basetypes that involve template parameters; that can lead to infinite recursion unnecessarily. * pt.c (register_specialization): Do not register specializations that aren't ready to be registered yet. (check_explicit_specialization): Handle explicit specialization of constructors and destructors. (build_template_decl): New function. (push_template_delc): Handle out-of-class specializations of member templates. * pt.c (check_explicit_specialization): Set up the template information before registering the specialization. (coerce_template_parms): Fix thinko. (tsubst): Handle specializations of member templates correctly. * class.c (finish_struct_methods): Remove calls to check_explicit_specialization from here. (finish_struct): And insert them here. * cp-tree.h (perform_qualification_conversions): New function. (perform_array_to_pointer_conversion): Likewise. (begin_explicit_instantiation): Likewise. (end_explicit_instantiation): Likewise. (determine_specialization): Renamed from determine_explicit_specialization. (comp_template_parms): New function. (processing_explicit_instantiation): New variable. * cvt.c (perform_qualification_conversions): New function. (perform_array_to_pointer_conversion): Likewise. * decl.c (duplicate_decls): Don't consider template functions alike unless they have the same parameters. Refine handling of instantiation/specialization mismatches. (start_decl): Don't call pushdecl for template specializations, since they don't affect overloading. (start_function): Likewise (grokfndecl): Call check_explicit_specialization a little later. Don't call duplicate_decls for memberm template specializations. (grokdeclarator): Don't update template_count for classes that are themselves specializations. Remove use of `2' as parameter to grokfndecl since that value isn't used. * lex.c (cons_up_default_function): Save and restore processing_explicit_instantiation around calls to grokfield. * parse.y (finish_member_template_decl): New function. (component_decl_1): Use it. (fn.def2): Likewise. (template_arg_list_opt): New nonterminal. (template_type): Use it. (self_template_type): Likewise. (template_id): Likewise. (object_template_id): Likewise. (notype_template_declarator): Likwise. (begin_explicit_instantiation): Likewise. (end_explicit_instantiation): Likewise. (explicit_instantiation): Use them. * pt.c (coerce_template_parms): Add parameters. (processing_explicit_instantiation): New variable. (convert_nontype_parameter): New function. (determine_overloaded_function): Likewise. (begin_explicit_instantiation): Likewise. (end_explicit_instantiation): Likewise. (retrieve_specialization): Likewise. (register_specialization): Likewise. (processing_explicit_specialization): Removed. (determine_specialization): Handle specializations of member functions of template class instantiations. (check_explicit_specialization): Refine to conform to standard. (comp_template_parms): New function. (coerce_template_parms): Call convert_nontype_parameter. (tsubst): Refine handling of member templates. Use register_specialization. (instantiate_template): Use retrieve_specialization. (do_decl_instantiation): Likewise. (instantiate_decl): Likewise. (type_unification): Improve handling of explict template arguments. * tree.c (mapcar): Return error_mark_node, rather than aborting, on VAR_DECLS, FUNCTION_DECLS, and CONST_DECLS. * typeck.c (build_unary_op): Call determine_specialization, rather than determine_explicit_specialization. From-SVN: r17426
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
config | Loading commit data... | |
cp | Loading commit data... | |
f | Loading commit data... | |
ginclude | Loading commit data... | |
intl | Loading commit data... | |
objc | Loading commit data... | |
testsuite | Loading commit data... | |
.gdbinit | Loading commit data... | |
BUGS | Loading commit data... | |
COPYING | Loading commit data... | |
COPYING.LIB | Loading commit data... | |
ChangeLog | Loading commit data... | |
ChangeLog.10 | Loading commit data... | |
ChangeLog.11 | Loading commit data... | |
ChangeLog.lib | Loading commit data... | |
INSTALL | Loading commit data... | |
LITERATURE | Loading commit data... | |
Makefile.in | Loading commit data... | |
NEWS | Loading commit data... | |
PROBLEMS | Loading commit data... | |
PROJECTS | Loading commit data... | |
README | Loading commit data... | |
README-bugs | Loading commit data... | |
README-fixinc | Loading commit data... | |
README.ACORN | Loading commit data... | |
README.ALTOS | Loading commit data... | |
README.APOLLO | Loading commit data... | |
README.DWARF | Loading commit data... | |
README.FRESCO | Loading commit data... | |
README.NS32K | Loading commit data... | |
README.RS6000 | Loading commit data... | |
README.TRAD | Loading commit data... | |
README.X11 | Loading commit data... | |
README.g77 | Loading commit data... | |
SERVICE | Loading commit data... | |
TESTS.FLUNK | Loading commit data... | |
acconfig.h | Loading commit data... | |
aclocal.m4 | Loading commit data... | |
alias.c | Loading commit data... | |
alloca.c | Loading commit data... | |
assert.h | Loading commit data... | |
basic-block.h | Loading commit data... | |
bc-emit.c | Loading commit data... | |
bc-emit.h | Loading commit data... | |
bc-optab.c | Loading commit data... | |
bc-optab.h | Loading commit data... | |
bc-typecd.def | Loading commit data... | |
bc-typecd.h | Loading commit data... | |
bi-arity.c | Loading commit data... | |
bi-defs.h | Loading commit data... | |
bi-lexer.c | Loading commit data... | |
bi-opcode.c | Loading commit data... | |
bi-opname.c | Loading commit data... | |
bi-parser.c | Loading commit data... | |
bi-parser.h | Loading commit data... | |
bi-parser.y | Loading commit data... | |
bi-reverse.c | Loading commit data... | |
bi-run.h | Loading commit data... | |
bitmap.c | Loading commit data... | |
bitmap.h | Loading commit data... | |
build-make | Loading commit data... | |
bytecode.def | Loading commit data... | |
bytecode.h | Loading commit data... | |
bytetypes.h | Loading commit data... | |
c-aux-info.c | Loading commit data... | |
c-common.c | Loading commit data... | |
c-convert.c | Loading commit data... | |
c-decl.c | Loading commit data... | |
c-gperf.h | Loading commit data... | |
c-iterate.c | Loading commit data... | |
c-lang.c | Loading commit data... | |
c-lex.c | Loading commit data... | |
c-lex.h | Loading commit data... | |
c-parse.c | Loading commit data... | |
c-parse.gperf | Loading commit data... | |
c-parse.h | Loading commit data... | |
c-parse.in | Loading commit data... | |
c-parse.y | Loading commit data... | |
c-pragma.c | Loading commit data... | |
c-pragma.h | Loading commit data... | |
c-tree.h | Loading commit data... | |
c-typeck.c | Loading commit data... | |
caller-save.c | Loading commit data... | |
calls.c | Loading commit data... | |
cccp.1 | Loading commit data... | |
cccp.c | Loading commit data... | |
cexp.c | Loading commit data... | |
cexp.y | Loading commit data... | |
choose-temp.c | Loading commit data... | |
collect2.c | Loading commit data... | |
combine.c | Loading commit data... | |
conditions.h | Loading commit data... | |
config.guess | Loading commit data... | |
config.in | Loading commit data... | |
config.sub | Loading commit data... | |
configure | Loading commit data... | |
configure.bat | Loading commit data... | |
configure.frag | Loading commit data... | |
configure.in | Loading commit data... | |
configure.lang | Loading commit data... | |
convert.c | Loading commit data... | |
convert.h | Loading commit data... | |
cplus-dem.c | Loading commit data... | |
cpp.1 | Loading commit data... | |
cpp.cps | Loading commit data... | |
cpp.fns | Loading commit data... | |
cpp.texi | Loading commit data... | |
cppalloc.c | Loading commit data... | |
cpperror.c | Loading commit data... | |
cppexp.c | Loading commit data... | |
cpphash.c | Loading commit data... | |
cpphash.h | Loading commit data... | |
cpplib.c | Loading commit data... | |
cpplib.h | Loading commit data... | |
cppmain.c | Loading commit data... | |
cross-make | Loading commit data... | |
crtstuff.c | Loading commit data... | |
cse.c | Loading commit data... | |
cstamp-h.in | Loading commit data... | |
dbxout.c | Loading commit data... | |
dbxstclass.h | Loading commit data... | |
defaults.h | Loading commit data... | |
demangle.h | Loading commit data... | |
doschk.c | Loading commit data... | |
dostage2 | Loading commit data... | |
dostage3 | Loading commit data... | |
dwarf.h | Loading commit data... | |
dwarf2.h | Loading commit data... | |
dwarf2out.c | Loading commit data... | |
dwarfout.c | Loading commit data... | |
emit-rtl.c | Loading commit data... | |
enquire.c | Loading commit data... | |
except.c | Loading commit data... | |
except.h | Loading commit data... | |
explow.c | Loading commit data... | |
expmed.c | Loading commit data... | |
expr.c | Loading commit data... | |
expr.h | Loading commit data... | |
extend.texi | Loading commit data... | |
final.c | Loading commit data... | |
fix-header.c | Loading commit data... | |
fixcpp | Loading commit data... | |
fixinc-nt.sed | Loading commit data... | |
fixinc.dgux | Loading commit data... | |
fixinc.irix | Loading commit data... | |
fixinc.math | Loading commit data... | |
fixinc.ptx | Loading commit data... | |
fixinc.sco | Loading commit data... | |
fixinc.svr4 | Loading commit data... | |
fixinc.winnt | Loading commit data... | |
fixinc.wrap | Loading commit data... | |
fixincludes | Loading commit data... | |
fixproto | Loading commit data... | |
flags.h | Loading commit data... | |
floatlib.c | Loading commit data... | |
flow.c | Loading commit data... | |
fold-const.c | Loading commit data... | |
fp-test.c | Loading commit data... | |
frame.c | Loading commit data... | |
frame.h | Loading commit data... | |
function.c | Loading commit data... | |
function.h | Loading commit data... | |
future.options | Loading commit data... | |
gansidecl.h | Loading commit data... | |
gbl-ctors.h | Loading commit data... | |
gcc.1 | Loading commit data... | |
gcc.c | Loading commit data... | |
gcc.cps | Loading commit data... | |
gcc.hlp | Loading commit data... | |
gcc.texi | Loading commit data... | |
gcov-io.h | Loading commit data... | |
gcov.c | Loading commit data... | |
gcov.texi | Loading commit data... | |
gen-protos.c | Loading commit data... | |
genattr.c | Loading commit data... | |
genattrtab.c | Loading commit data... | |
gencodes.c | Loading commit data... | |
genconfig.c | Loading commit data... | |
genemit.c | Loading commit data... | |
genextract.c | Loading commit data... | |
genflags.c | Loading commit data... | |
gengenrtl.c | Loading commit data... | |
genmultilib | Loading commit data... | |
genopinit.c | Loading commit data... | |
genoutput.c | Loading commit data... | |
genpeep.c | Loading commit data... | |
genrecog.c | Loading commit data... | |
getopt.c | Loading commit data... | |
getopt.h | Loading commit data... | |
getopt1.c | Loading commit data... | |
getpwd.c | Loading commit data... | |
glimits.h | Loading commit data... | |
global.c | Loading commit data... | |
gmon.c | Loading commit data... | |
gstab.h | Loading commit data... | |
gsyms.h | Loading commit data... | |
gsyslimits.h | Loading commit data... | |
gthr-dce.h | Loading commit data... | |
gthr-posix.h | Loading commit data... | |
gthr-single.h | Loading commit data... | |
gthr-solaris.h | Loading commit data... | |
gthr.h | Loading commit data... | |
haifa-sched.c | Loading commit data... | |
halfpic.c | Loading commit data... | |
halfpic.h | Loading commit data... | |
hard-reg-set.h | Loading commit data... | |
hash.c | Loading commit data... | |
hash.h | Loading commit data... | |
input.h | Loading commit data... | |
install.texi | Loading commit data... | |
install1.texi | Loading commit data... | |
integrate.c | Loading commit data... | |
integrate.h | Loading commit data... | |
invoke.texi | Loading commit data... | |
jump.c | Loading commit data... | |
just-fixinc | Loading commit data... | |
libgcc1-test.c | Loading commit data... | |
libgcc1.c | Loading commit data... | |
libgcc2.c | Loading commit data... | |
limitx.h | Loading commit data... | |
limity.h | Loading commit data... | |
listing | Loading commit data... | |
local-alloc.c | Loading commit data... | |
longlong.h | Loading commit data... | |
loop.c | Loading commit data... | |
loop.h | Loading commit data... | |
machmode.def | Loading commit data... | |
machmode.h | Loading commit data... | |
make-cc1.com | Loading commit data... | |
make-cccp.com | Loading commit data... | |
make-gcc.com | Loading commit data... | |
make-l2.com | Loading commit data... | |
md.texi | Loading commit data... | |
mips-tdump.c | Loading commit data... | |
mips-tfile.c | Loading commit data... | |
modemap.def | Loading commit data... | |
move-if-change | Loading commit data... | |
obstack.c | Loading commit data... | |
obstack.h | Loading commit data... | |
optabs.c | Loading commit data... | |
output.h | Loading commit data... | |
pcp.h | Loading commit data... | |
pexecute.c | Loading commit data... | |
prefix.c | Loading commit data... | |
print-rtl.c | Loading commit data... | |
print-tree.c | Loading commit data... | |
profile.c | Loading commit data... | |
protoize.c | Loading commit data... | |
pself.c | Loading commit data... | |
pself1.c | Loading commit data... | |
pself2.c | Loading commit data... | |
pself3.c | Loading commit data... | |
real.c | Loading commit data... | |
real.h | Loading commit data... | |
recog.c | Loading commit data... | |
recog.h | Loading commit data... | |
reg-stack.c | Loading commit data... | |
regclass.c | Loading commit data... | |
regmove.c | Loading commit data... | |
regs.h | Loading commit data... | |
reload.c | Loading commit data... | |
reload.h | Loading commit data... | |
reload1.c | Loading commit data... | |
reorg.c | Loading commit data... | |
rtl.c | Loading commit data... | |
rtl.def | Loading commit data... | |
rtl.h | Loading commit data... | |
rtl.texi | Loading commit data... | |
rtlanal.c | Loading commit data... | |
scan-decls.c | Loading commit data... | |
scan-types.sh | Loading commit data... | |
scan.c | Loading commit data... | |
scan.h | Loading commit data... | |
sched.c | Loading commit data... | |
sdbout.c | Loading commit data... | |
sort-protos | Loading commit data... | |
stab.def | Loading commit data... | |
stack.h | Loading commit data... | |
stmt.c | Loading commit data... | |
stor-layout.c | Loading commit data... | |
stupid.c | Loading commit data... | |
sys-protos.h | Loading commit data... | |
sys-types.h | Loading commit data... | |
texinfo.tex | Loading commit data... | |
tlink.c | Loading commit data... | |
tm.texi | Loading commit data... | |
toplev.c | Loading commit data... | |
tree.c | Loading commit data... | |
tree.def | Loading commit data... | |
tree.h | Loading commit data... | |
typeclass.h | Loading commit data... | |
unprotoize.c | Loading commit data... | |
unroll.c | Loading commit data... | |
varasm.c | Loading commit data... | |
version.c | Loading commit data... | |
vmsconfig.com | Loading commit data... | |
xcoffout.c | Loading commit data... | |
xcoffout.h | Loading commit data... |