re PR c++/7718 ('complex' template instantiation causes internal compiler error (gcc 3.1, gcc 3.2))

cp:
	PR c++/7718
	* pt.c (tsubst_decl): Remove assert.
testsuite:
	* g++.dg/template/subst1.C: New test.

From-SVN: r57211
This commit is contained in:
Nathan Sidwell 2002-09-16 19:57:33 +00:00 committed by Nathan Sidwell
parent 045572c7df
commit 3ec83083bf
4 changed files with 38 additions and 2 deletions

View File

@ -1,5 +1,8 @@
2002-09-16 Nathan Sidwell <nathan@codesourcery.com>
PR c++/7718
* pt.c (tsubst_decl): Remove assert.
Remove DR 295 implementation.
* pt.c (check_cv_quals_for_unify): Disable function & method cases.
* tree.c (cp_build_qualified_type_real): Likewise. Don't warn

View File

@ -5694,8 +5694,6 @@ tsubst_decl (t, args, type, complain)
tree r = NULL_TREE;
tree in_decl = t;
my_friendly_assert (complain & tf_error, 20011214);
/* Set the filename and linenumber to improve error-reporting. */
saved_lineno = lineno;
saved_filename = input_filename;

View File

@ -1,9 +1,17 @@
2002-09-16 Nathan Sidwell <nathan@codesourcery.com>
* g++.dg/template/subst1.C: New test.
2002-09-16 Steve Ellcey <sje@cup.hp.com>
* gcc.dg/20020312-2.c: Change __parisc__ to __hppa__.
2002-09-16 Nathan Sidwell <nathan@codesourcery.com>
* g++.dg/template/qualttp20.C: Adjust expected errors.
* g++.old-deja/g++.jason/report.C: Likewise.
* g++.old-deja/g++.other/qual1.C: Likewise.
* g++.dg/lookup/scoped2.C: New test.
* g++.dg/ext/asm3.C: New test.

View File

@ -0,0 +1,27 @@
// { dg-do compile }
// Copyright (C) 2002 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 16 Sep 2002 <nathan@codesourcery.com>
// PR 7718. ICE.
template <typename OBJECT>
void default_initializer(const OBJECT &) { }
template <typename OBJECT, void init_function(const OBJECT &)>
class cContainer {
public:
template <typename INITIALIZER>
void Add(const INITIALIZER &initializer) {
init_function(initializer);
}
};
int main() {
cContainer<int, default_initializer<int> > c;
c.Add<int>(42);
return 0;
}