tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to check whether we already have the type.

cp:
	* tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
	check whether we already have the type.
testsuite:
	* g++.old-deja/g++.pt/deduct5.C: New test.

From-SVN: r39665
This commit is contained in:
Nathan Sidwell 2001-02-14 09:45:29 +00:00 committed by Nathan Sidwell
parent 837a680a7a
commit 7773899b5f
4 changed files with 43 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2001-02-14 Nathan Sidwell <nathan@codesourcery.com>
* tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
check whether we already have the type.
2001-02-13 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.

View File

@ -516,7 +516,7 @@ cp_build_qualified_type_real (type, type_quals, complain)
if (type == error_mark_node)
return type;
if (type_quals == TYPE_QUALS (type))
if (type_quals == CP_TYPE_QUALS (type))
return type;
/* A restrict-qualified pointer type must be a pointer (or reference)

View File

@ -1,3 +1,7 @@
2001-02-14 Nathan Sidwell <nathan@codesourcery.com>
* g++.old-deja/g++.pt/deduct5.C: New test.
2001-02-14 Jakub Jelinek <jakub@redhat.com>
* gcc.c-torture/execute/20010209-1.c: New test.

View File

@ -0,0 +1,33 @@
// Copyright (C) 2000 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 13 Feb 2001 <nathan@codesourcery.com>
// Bug 1960. We were not dealing with qualified array types properly.
#include <stdio.h>
template <typename T> int Foo (T const *ptr)
{
static int count = 0;
printf ("%s\n", __PRETTY_FUNCTION__);
count++;
return count;
}
int main ()
{
static int const cs = 1;
static int const ca[1] = {1};
static int s = 1;
static int a[1] = {1};
Foo (&cs);
Foo (&ca);
if (Foo (&s) != 2)
return 1;
if (Foo (&a) != 2)
return 2;
return 0;
}