tinfo2.cc (fast_compare): Remove.
* tinfo2.cc (fast_compare): Remove. (before): Just use strcmp. * tinfo.cc (operator==): Just use strcmp. * decl.c (grokfndecl): Don't check for linkage in `extern "C"' declarations. From-SVN: r23057
This commit is contained in:
parent
619aeb9611
commit
a321c3844f
@ -1,3 +1,14 @@
|
||||
1998-10-13 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* tinfo2.cc (fast_compare): Remove.
|
||||
(before): Just use strcmp.
|
||||
* tinfo.cc (operator==): Just use strcmp.
|
||||
|
||||
1998-10-13 Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de>
|
||||
|
||||
* decl.c (grokfndecl): Don't check for linkage in `extern "C"'
|
||||
declarations.
|
||||
|
||||
1998-10-13 Mark Mitchell <mark@markmitchell.com>
|
||||
|
||||
* cp-tree.h (specializations_of_same_template_p): Remove.
|
||||
|
@ -8024,7 +8024,8 @@ grokfndecl (ctype, type, declarator, orig_declarator, virtualp, flags, quals,
|
||||
t = no_linkage_check (TREE_TYPE (decl));
|
||||
if (t)
|
||||
{
|
||||
if (ANON_AGGRNAME_P (TYPE_IDENTIFIER (t)))
|
||||
if (ANON_AGGRNAME_P (TYPE_IDENTIFIER (t))
|
||||
&& DECL_LANGUAGE (decl) != lang_c)
|
||||
cp_pedwarn ("non-local function `%#D' uses anonymous type", decl);
|
||||
else
|
||||
cp_pedwarn ("non-local function `%#D' uses local type `%T'",
|
||||
|
@ -28,6 +28,7 @@
|
||||
#pragma implementation "typeinfo"
|
||||
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include "tinfo.h"
|
||||
#include "new" // for placement new
|
||||
|
||||
@ -43,7 +44,7 @@ std::type_info::
|
||||
bool type_info::
|
||||
operator== (const type_info& arg) const
|
||||
{
|
||||
return (&arg == this) || (fast_compare (name (), arg.name ()) == 0);
|
||||
return (&arg == this) || (strcmp (name (), arg.name ()) == 0);
|
||||
}
|
||||
|
||||
extern "C" void
|
||||
|
@ -26,27 +26,16 @@
|
||||
// the executable file might be covered by the GNU General Public License.
|
||||
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include "tinfo.h"
|
||||
#include "new" // for placement new
|
||||
|
||||
using std::type_info;
|
||||
// service function for comparing types by name.
|
||||
|
||||
static inline int
|
||||
fast_compare (const char *n1, const char *n2) {
|
||||
int c;
|
||||
if (n1 == n2) return 0;
|
||||
if (n1 == 0) return *n2;
|
||||
else if (n2 == 0) return *n1;
|
||||
|
||||
c = (int)*n1++ - (int)*n2++;
|
||||
return c == 0 ? strcmp (n1, n2) : c;
|
||||
};
|
||||
|
||||
bool
|
||||
type_info::before (const type_info &arg) const
|
||||
{
|
||||
return fast_compare (name (), arg.name ()) < 0;
|
||||
return strcmp (name (), arg.name ()) < 0;
|
||||
}
|
||||
|
||||
// type info for pointer type.
|
||||
|
Loading…
Reference in New Issue
Block a user