]> gcc.gnu.org Git - gcc.git/commitdiff
Further conform g++'s __vmi_class_type_info to the C++ ABI specification.
authorJeffrey D. Oldham <oldham@codesourcery.com>
Tue, 14 Jan 2003 21:36:20 +0000 (21:36 +0000)
committerJeffrey D. Oldham <oldham@gcc.gnu.org>
Tue, 14 Jan 2003 21:36:20 +0000 (21:36 +0000)
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

gcc/cp/ChangeLog
gcc/cp/rtti.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.old-deja/g++.abi/vmihint.C
libstdc++-v3/ChangeLog
libstdc++-v3/libsupc++/cxxabi.h

index aad06b772592760828af85381ad4ec91fbf1b10f..b49c6da080fabb5703c753b9dab5acffbc01380e 100644 (file)
@@ -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.
index 71b8e34b19982868f599dd6d8474815d230310ab..0b688051f9f4cff2053c51ce56f6f7fe9797363f 100644 (file)
@@ -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;
 }
         
index b1608daa1f7e89aab37d259657f5e011a7076bde..c62c93115c4f99d1d0d3fc4675829a4f6f618a37 100644 (file)
@@ -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.
index 1160e1fe178d3e682b4b362096b4e3ee6381325c..b4cdf6720cc08a8c337e213e5dc9d931a9e8f390 100644 (file)
@@ -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;
index d67b56e73a77f8fb79105a7c3c238f3e3360a2ea..9929ee8cda1029781593bc403caa5e5b5c9a12fd 100644 (file)
@@ -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.    
index adb1a00d30740d58865f31925bc176a8d2dcb8d1..e946e26585a2e7ed5bdeedee679b9ad1af635e3d 100644 (file)
@@ -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
   };
 
This page took 0.112332 seconds and 5 git commands to generate.