Commit a7189b49 by Jeffrey D. Oldham Committed by Jeffrey D. Oldham

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
parent 7365ecf7
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.
......
/* 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;
}
......
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.
......
// 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;
......
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.
......
// 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
};
......
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