diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-06-10 03:02:21 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-06-10 03:02:21 +0000 |
commit | 691f866f93dea700257a38727b01ec2819f35dc9 (patch) | |
tree | a0bcdfb150422be9163d15f232aa17dc922ff927 /libio | |
parent | 7cca1dc0ae88b8073e5fc3aba45793a2bfaa0afe (diff) | |
download | gcc-691f866f93dea700257a38727b01ec2819f35dc9.tar.gz |
Revert previous patch
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34482 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libio')
-rw-r--r-- | libio/ChangeLog | 5 | ||||
-rw-r--r-- | libio/libioP.h | 16 | ||||
-rw-r--r-- | libio/stdstrbufs.cc | 22 |
3 files changed, 32 insertions, 11 deletions
diff --git a/libio/ChangeLog b/libio/ChangeLog index cbee31978bf..b7b30ea0e24 100644 --- a/libio/ChangeLog +++ b/libio/ChangeLog @@ -1,8 +1,3 @@ -2000-06-08 Mark Mitchell <mark@codesourcery.com> - - * libioP.h: Remove old ABI mangling code. - * stdstrbufs.cc: Likewise. - 2000-06-04 Mark Mitchell <mark@codesourcery.com> * libioP.h: Handle new ABI mangling. diff --git a/libio/libioP.h b/libio/libioP.h index 77ec9a3b6bb..171d9b9c1da 100644 --- a/libio/libioP.h +++ b/libio/libioP.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1997, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1997 Free Software Foundation, Inc. This file is part of the GNU IO Library. This library is free software; you can redistribute it and/or @@ -593,8 +593,18 @@ extern int _IO_vscanf __P ((const char *, _IO_va_list)); /* VTABLE_LABEL defines NAME as of the CLASS class. CNLENGTH is strlen(#CLASS). */ #ifdef __GNUC__ -# define VTABLE_LABEL(NAME, CLASS, CNLENGTH) \ - extern char NAME[] asm ("_ZTV" #CNLENGTH #CLASS ); +# if (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100) +# if _G_VTABLE_LABEL_HAS_LENGTH +# define VTABLE_LABEL(NAME, CLASS, CNLENGTH) \ + extern char NAME[] asm (_G_VTABLE_LABEL_PREFIX #CNLENGTH #CLASS); +# else +# define VTABLE_LABEL(NAME, CLASS, CNLENGTH) \ + extern char NAME[] asm (_G_VTABLE_LABEL_PREFIX #CLASS); +# endif +# else +# define VTABLE_LABEL(NAME, CLASS, CNLENGTH) \ + extern char NAME[] asm ("_ZN" #CNLENGTH #CLASS "TVE"); +# endif /* (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100) */ #endif /* __GNUC__ */ #if !defined(builtinbuf_vtable) && defined(__cplusplus) diff --git a/libio/stdstrbufs.cc b/libio/stdstrbufs.cc index 8b9e375d894..ee10cdc4d00 100644 --- a/libio/stdstrbufs.cc +++ b/libio/stdstrbufs.cc @@ -1,5 +1,5 @@ /* -Copyright (C) 1994, 2000 Free Software Foundation +Copyright (C) 1994 Free Software Foundation This file is part of the GNU IO Library. This library is free software; you can redistribute it and/or modify it under the @@ -35,7 +35,15 @@ the executable file might be covered by the GNU General Public License. */ #if !defined(filebuf_vtable) && defined(__cplusplus) #ifdef __GNUC__ extern char filebuf_vtable[] - asm ( "_ZTV7filebuf" ); +#if (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100) + asm (_G_VTABLE_LABEL_PREFIX +#if _G_VTABLE_LABEL_HAS_LENGTH + "7" +#endif + "filebuf"); +#else + asm ( "_ZN7filebufTVE" ); +#endif /* (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100) */ #else /* !__GNUC__ */ #if _G_VTABLE_LABEL_HAS_LENGTH #define filebuf_vtable _G_VTABLE_LABEL_PREFIX_ID##7filebuf @@ -83,7 +91,15 @@ struct _IO_fake_stdiobuf { #ifndef stdiobuf_vtable #ifdef __GNUC__ extern struct _IO_jump_t stdiobuf_vtable - asm ( "_ZTV15stdiobuf_vtable" ); +#if (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100) + asm (_G_VTABLE_LABEL_PREFIX +#if _G_VTABLE_LABEL_HAS_LENGTH + "8" +#endif + "stdiobuf"); +#else + asm ( "_ZN15stdiobuf_vtableTVE" ); +#endif /* (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100) */ #else /* !__GNUC__ */ #if _G_VTABLE_LABEL_HAS_LENGTH #define stdiobuf_vtable _G_VTABLE_LABEL_PREFIX_ID##8stdiobuf |