t-cygwin32 (TARGET_LIBGCC2_CFLAGS): Define.
authorJason Merrill <jason@yorick.cygnus.com>
Mon, 12 Oct 1998 02:14:03 +0000 (02:14 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 12 Oct 1998 02:14:03 +0000 (22:14 -0400)
* i386/t-cygwin32 (TARGET_LIBGCC2_CFLAGS): Define.
(cp) * inc/typeinfo: Add #pragma interface.
(operator!=): Just call operator==.
* tinfo.cc: Add #pragma implementation.
(operator==): Move from inc/typeinfo and tinfo2.cc.
Check __COMMON_UNRELIABLE instead of _WIN32.

From-SVN: r23004

gcc/ChangeLog
gcc/config/i386/t-cygwin32
gcc/cp/ChangeLog
gcc/cp/inc/typeinfo
gcc/cp/tinfo.cc
gcc/cp/tinfo2.cc

index 0d2e7757d5529f16dbc55ccc1feb94473fbf7c4e..ef57f796b636ea83053980fcfe6a7ef0ffcc828c 100644 (file)
@@ -1,3 +1,7 @@
+Mon Oct 12 02:03:25 1998  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * i386/t-cygwin32 (TARGET_LIBGCC2_CFLAGS): Define.
+
 Mon Oct 12 01:22:53 PDT 1998 Jeff Law  (law@cygnus.com)
 
        * version.c: Bump for snapshot.
index 20bc9803b1ecd8e04dc5767d6d8751124801212d..42eb7d7ef81550a59d17742ae82c7660dba5e63a 100644 (file)
@@ -3,6 +3,10 @@ CROSS_LIBGCC1 = libgcc1-asm.a
 LIB1ASMSRC = i386/cygwin32.asm
 LIB1ASMFUNCS = _chkstk
 
+# We can't rely on common symbols being shared between translation units
+# under Windows.
+TARGET_LIBGCC2_CFLAGS = -D__COMMON_UNRELIABLE
+
 # cygwin32 always has a limits.h, but, depending upon how we are doing
 # the build, it may not be installed yet.
 LIMITS_H_TEST = true
index cfeb8e53b7f4113c41e0f7b863fd626f196142b4..14abce98e27ea48b887bee839e68e8ae2248249a 100644 (file)
@@ -1,5 +1,11 @@
 1998-10-12  Jason Merrill  <jason@yorick.cygnus.com>
 
+       * inc/typeinfo: Add #pragma interface.
+       (operator!=): Just call operator==.
+       * tinfo.cc: Add #pragma implementation.
+       (operator==): Move from inc/typeinfo and tinfo2.cc.
+       Check __COMMON_UNRELIABLE instead of _WIN32.
+
        * typeck2.c (my_friendly_abort): Add URL.
 
 1998-10-12  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
index cf3b521af5ed7c9147121988217a9242b491f9ec..6c8ea05aa725a6126474ab3e8a5790091457c829 100644 (file)
@@ -4,6 +4,8 @@
 #ifndef __TYPEINFO__
 #define __TYPEINFO__
 
+#pragma interface "typeinfo"
+
 #include <exception>
 
 extern "C++" {
@@ -32,22 +34,11 @@ public:
   bool operator!= (const type_info& arg) const;
 };
 
-// We can't rely on common symbols being shared between translation units
-// under Windows.  Sigh.
-
-#ifndef _WIN32
-inline bool type_info::
-operator== (const type_info& arg) const
-{
-  return &arg == this;
-}
-
 inline bool type_info::
 operator!= (const type_info& arg) const
 {
-  return &arg != this;
+  return !operator== (arg);
 }
-#endif
 
 class bad_cast : public exception {
 public:
index 4b68fd1b3fb20e2a6b581ce60b6b4bf7a17bcac7..2096a512a23d20fa591ef70f71675bef943a9cdb 100644 (file)
@@ -25,6 +25,8 @@
 // This exception does not however invalidate any other reasons why
 // the executable file might be covered by the GNU General Public License.
 
+#pragma implementation "typeinfo"
+
 #include <stddef.h>
 #include "tinfo.h"
 #include "new"                 // for placement new
@@ -37,6 +39,23 @@ std::type_info::
 ~type_info ()
 { }
 
+#ifndef __COMMON_UNRELIABLE
+bool type_info::
+operator== (const type_info& arg) const
+{
+  return &arg == this;
+}
+#else
+// We can't rely on common symbols being shared between translation units
+// under Windows.  Sigh.
+
+bool type_info::
+operator== (const type_info& arg) const
+{
+  return fast_compare (name (), arg.name ()) == 0;
+}
+#endif
+
 extern "C" void
 __rtti_class (void *addr, const char *name,
              const __class_type_info::base_info *bl, size_t bn)
index b797cc3e1dbb7f10b522d608b69ff90850a4a567..c19cf607762f8aea6f37cec20abc5aa07b3e27fc 100644 (file)
@@ -49,20 +49,6 @@ type_info::before (const type_info &arg) const
   return fast_compare (name (), arg.name ()) < 0;
 }
 
-#ifdef _WIN32
-bool type_info::
-operator== (const type_info& arg) const
-{
-  return fast_compare (name (), arg.name ()) == 0;
-}
-
-bool type_info::
-operator!= (const type_info& arg) const
-{
-  return fast_compare (name (), arg.name ()) != 0;
-}
-#endif
-
 // type info for pointer type.
 
 struct __pointer_type_info : public type_info {