Commit 3ec83083 by Nathan Sidwell Committed by Nathan Sidwell

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
parent 045572c7
2002-09-16 Nathan Sidwell <nathan@codesourcery.com> 2002-09-16 Nathan Sidwell <nathan@codesourcery.com>
PR c++/7718
* pt.c (tsubst_decl): Remove assert.
Remove DR 295 implementation. Remove DR 295 implementation.
* pt.c (check_cv_quals_for_unify): Disable function & method cases. * pt.c (check_cv_quals_for_unify): Disable function & method cases.
* tree.c (cp_build_qualified_type_real): Likewise. Don't warn * tree.c (cp_build_qualified_type_real): Likewise. Don't warn
......
...@@ -5694,8 +5694,6 @@ tsubst_decl (t, args, type, complain) ...@@ -5694,8 +5694,6 @@ tsubst_decl (t, args, type, complain)
tree r = NULL_TREE; tree r = NULL_TREE;
tree in_decl = t; tree in_decl = t;
my_friendly_assert (complain & tf_error, 20011214);
/* Set the filename and linenumber to improve error-reporting. */ /* Set the filename and linenumber to improve error-reporting. */
saved_lineno = lineno; saved_lineno = lineno;
saved_filename = input_filename; saved_filename = input_filename;
......
2002-09-16 Nathan Sidwell <nathan@codesourcery.com>
* g++.dg/template/subst1.C: New test.
2002-09-16 Steve Ellcey <sje@cup.hp.com> 2002-09-16 Steve Ellcey <sje@cup.hp.com>
* gcc.dg/20020312-2.c: Change __parisc__ to __hppa__. * gcc.dg/20020312-2.c: Change __parisc__ to __hppa__.
2002-09-16 Nathan Sidwell <nathan@codesourcery.com> 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/lookup/scoped2.C: New test.
* g++.dg/ext/asm3.C: New test. * g++.dg/ext/asm3.C: New test.
......
// { 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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment