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:
parent
045572c7df
commit
3ec83083bf
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
|
27
gcc/testsuite/g++.dg/template/subst1.C
Normal file
27
gcc/testsuite/g++.dg/template/subst1.C
Normal 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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user