Commit 34e225a3 by Nathan Sidwell Committed by Nathan Sidwell

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
parent 98979fe0
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
parameters with pointers to arrays of unknown bound.
......
......@@ -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;
......
// 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;
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