mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-30 07:14:09 +08:00
Further conform g++'s __vmi_class_type_info to the C++ ABI specification.
2003-01-14 Jeffrey D. Oldham <oldham@codesourcery.com> Further conform g++'s __vmi_class_type_info to the C++ ABI specification. * gcc/cp/rtti.c (dfs_class_hint_mark): Do not set hints not specified by the specification. (class_hint_flags): Likewise. * gcc/testsuite/g++.old-deja/g++.abi/vmihint.C (main): Revise expected flags per the specification. * libstdc++-v3/libsupc++/cxxabi.h (__vmi_class_type_info::__flags_masks): Remove enumerations not required by the specification. From-SVN: r61304
This commit is contained in:
parent
7365ecf789
commit
a7189b490f
@ -1,3 +1,11 @@
|
||||
2003-01-14 Jeffrey D. Oldham <oldham@codesourcery.com>
|
||||
|
||||
Further conform g++'s __vmi_class_type_info to the C++ ABI
|
||||
specification.
|
||||
* rtti.c (dfs_class_hint_mark): Do not set hints not specified by
|
||||
the specification.
|
||||
(class_hint_flags): Likewise.
|
||||
|
||||
2003-01-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
||||
|
||||
* config-lang.in: Add semantics.c to gtfiles.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* RunTime Type Identification
|
||||
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
|
||||
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
Free Software Foundation, Inc.
|
||||
Mostly written by Jason Merrill (jason@cygnus.com).
|
||||
|
||||
@ -916,8 +916,6 @@ dfs_class_hint_mark (tree binfo, void *data)
|
||||
*hint |= 1;
|
||||
SET_CLASSTYPE_MARKED (basetype);
|
||||
}
|
||||
if (!TREE_VIA_PUBLIC (binfo) && TYPE_BINFO (basetype) != binfo)
|
||||
*hint |= 4;
|
||||
return NULL_TREE;
|
||||
};
|
||||
|
||||
@ -939,18 +937,10 @@ static int
|
||||
class_hint_flags (tree type)
|
||||
{
|
||||
int hint_flags = 0;
|
||||
int i;
|
||||
|
||||
dfs_walk (TYPE_BINFO (type), dfs_class_hint_mark, NULL, &hint_flags);
|
||||
dfs_walk (TYPE_BINFO (type), dfs_class_hint_unmark, NULL, NULL);
|
||||
|
||||
for (i = 0; i < CLASSTYPE_N_BASECLASSES (type); ++i)
|
||||
{
|
||||
tree base_binfo = BINFO_BASETYPE (TYPE_BINFO (type), i);
|
||||
|
||||
if (TREE_VIA_PUBLIC (base_binfo))
|
||||
hint_flags |= 0x8;
|
||||
}
|
||||
return hint_flags;
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
2003-01-14 Jeffrey D. Oldham <oldham@codesourcery.com>
|
||||
|
||||
Further conform g++'s __vmi_class_type_info to the C++ ABI
|
||||
specification.
|
||||
* g++.old-deja/g++.abi/vmihint.C (main): Revise expected flags per
|
||||
the specification.
|
||||
|
||||
Tue Jan 14 00:45:03 CET 2003 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* gcc.dg/i386-fpcvt-1.c: New test.
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Test rtti hint flags
|
||||
// Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2000, 2003 Free Software Foundation, Inc.
|
||||
// Contributed by Nathan Sidwell 3 Apr 2000 <nathan@nathan@codesourcery.com>
|
||||
|
||||
#include <typeinfo>
|
||||
@ -43,20 +43,20 @@ int expect (int flags, std::type_info const &info)
|
||||
|
||||
int main ()
|
||||
{
|
||||
if (! expect (0 | 8, typeid (C1)))
|
||||
if (! expect (0, typeid (C1)))
|
||||
return 1;
|
||||
if (! expect (2 | 8, typeid (D1)))
|
||||
if (! expect (2, typeid (D1)))
|
||||
return 2;
|
||||
if (! expect (1 | 8, typeid (E1)))
|
||||
if (! expect (1, typeid (E1)))
|
||||
return 3;
|
||||
if (! expect (1 | 8, typeid (E2)))
|
||||
if (! expect (1, typeid (E2)))
|
||||
return 4;
|
||||
if (! expect (3 | 8, typeid (F1)))
|
||||
if (! expect (3, typeid (F1)))
|
||||
return 5;
|
||||
|
||||
if (!expect (4, typeid (P1)))
|
||||
if (!expect (0, typeid (P1)))
|
||||
return 6;
|
||||
if (!expect (12, typeid (P2)))
|
||||
if (!expect (0, typeid (P2)))
|
||||
return 7;
|
||||
|
||||
return 0;
|
||||
|
@ -1,3 +1,11 @@
|
||||
2003-01-14 Jeffrey D. Oldham <oldham@codesourcery.com>
|
||||
|
||||
Further conform g++'s __vmi_class_type_info to the C++ ABI
|
||||
specification.
|
||||
* libsupc++/cxxabi.h
|
||||
(__vmi_class_type_info::__flags_masks): Remove enumerations not
|
||||
required by the specification.
|
||||
|
||||
2003-01-12 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
Renames, namespaces for testsuite utilities.
|
||||
|
@ -1,6 +1,6 @@
|
||||
// new abi support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of GNU CC.
|
||||
//
|
||||
@ -384,9 +384,6 @@ public:
|
||||
enum __flags_masks {
|
||||
__non_diamond_repeat_mask = 0x1, /* distinct instance of repeated base */
|
||||
__diamond_shaped_mask = 0x2, /* diamond shaped multiple inheritance */
|
||||
non_public_base_mask = 0x4, /* has non-public direct or indirect base */
|
||||
public_base_mask = 0x8, /* has public base (direct) */
|
||||
|
||||
__flags_unknown_mask = 0x10
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user