mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-07 22:17:19 +08:00
pt.c (unify): Check array has a domain, before checking whether it is variable sized.
cp: * pt.c (unify): Check array has a domain, before checking whether it is variable sized. testsuite: * g++.old-deja/g++.pt/crash64.C: New test. From-SVN: r38902
This commit is contained in:
parent
98979fe0b0
commit
34e225a30b
@ -1,3 +1,8 @@
|
||||
2001-01-11 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* pt.c (unify): Check array has a domain, before checking
|
||||
whether it is variable sized.
|
||||
|
||||
2001-01-11 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* decl.c (grokparms): Unobfuscate and get correct diagnostic for
|
||||
|
@ -8605,6 +8605,7 @@ unify (tparms, targs, parm, arg, strict)
|
||||
here. */
|
||||
if (TREE_CODE (arg) == ARRAY_TYPE
|
||||
&& !uses_template_parms (arg)
|
||||
&& TYPE_DOMAIN (arg)
|
||||
&& (TREE_CODE (TYPE_MAX_VALUE (TYPE_DOMAIN (arg)))
|
||||
!= INTEGER_CST))
|
||||
return 1;
|
||||
|
24
gcc/testsuite/g++.old-deja/g++.pt/crash64.C
Normal file
24
gcc/testsuite/g++.old-deja/g++.pt/crash64.C
Normal file
@ -0,0 +1,24 @@
|
||||
// Build don't link:
|
||||
|
||||
// Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
// Contributed by Nathan Sidwell 10 Jan 2001 <nathan@codesourcery.com>
|
||||
|
||||
// Bug 1546. We ICE'd trying to unify an array of unknown bound,
|
||||
// checking to see if it was a variable sized array.
|
||||
|
||||
template <class _Tp> class allocator {};
|
||||
|
||||
template <class _Tp, class _Allocator>
|
||||
struct _Alloc_traits
|
||||
{
|
||||
static const bool _S_instanceless = false;
|
||||
};
|
||||
|
||||
template <class _Tp, class _Tp1>
|
||||
struct _Alloc_traits<_Tp, allocator<_Tp1> >
|
||||
{
|
||||
static const bool _S_instanceless = true;
|
||||
};
|
||||
|
||||
typedef char state [];
|
||||
bool y = _Alloc_traits<state, allocator<state> >::_S_instanceless;
|
Loading…
Reference in New Issue
Block a user