1*e4b17023SJohn Marino // Methods for type_info for -*- C++ -*- Run Time Type Identification.
2*e4b17023SJohn Marino
3*e4b17023SJohn Marino // Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2009
4*e4b17023SJohn Marino // Free Software Foundation
5*e4b17023SJohn Marino //
6*e4b17023SJohn Marino // This file is part of GCC.
7*e4b17023SJohn Marino //
8*e4b17023SJohn Marino // GCC is free software; you can redistribute it and/or modify
9*e4b17023SJohn Marino // it under the terms of the GNU General Public License as published by
10*e4b17023SJohn Marino // the Free Software Foundation; either version 3, or (at your option)
11*e4b17023SJohn Marino // any later version.
12*e4b17023SJohn Marino
13*e4b17023SJohn Marino // GCC is distributed in the hope that it will be useful,
14*e4b17023SJohn Marino // but WITHOUT ANY WARRANTY; without even the implied warranty of
15*e4b17023SJohn Marino // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16*e4b17023SJohn Marino // GNU General Public License for more details.
17*e4b17023SJohn Marino
18*e4b17023SJohn Marino // Under Section 7 of GPL version 3, you are granted additional
19*e4b17023SJohn Marino // permissions described in the GCC Runtime Library Exception, version
20*e4b17023SJohn Marino // 3.1, as published by the Free Software Foundation.
21*e4b17023SJohn Marino
22*e4b17023SJohn Marino // You should have received a copy of the GNU General Public License and
23*e4b17023SJohn Marino // a copy of the GCC Runtime Library Exception along with this program;
24*e4b17023SJohn Marino // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
25*e4b17023SJohn Marino // <http://www.gnu.org/licenses/>.
26*e4b17023SJohn Marino
27*e4b17023SJohn Marino #include <cstddef>
28*e4b17023SJohn Marino #include "tinfo.h"
29*e4b17023SJohn Marino
30*e4b17023SJohn Marino using std::type_info;
31*e4b17023SJohn Marino
32*e4b17023SJohn Marino #if !__GXX_TYPEINFO_EQUALITY_INLINE
33*e4b17023SJohn Marino
34*e4b17023SJohn Marino bool
before(const type_info & arg) const35*e4b17023SJohn Marino type_info::before (const type_info &arg) const
36*e4b17023SJohn Marino {
37*e4b17023SJohn Marino #if __GXX_MERGED_TYPEINFO_NAMES
38*e4b17023SJohn Marino return name () < arg.name ();
39*e4b17023SJohn Marino #else
40*e4b17023SJohn Marino return (name ()[0] == '*') ? name () < arg.name ()
41*e4b17023SJohn Marino : __builtin_strcmp (name (), arg.name ()) < 0;
42*e4b17023SJohn Marino #endif
43*e4b17023SJohn Marino }
44*e4b17023SJohn Marino
45*e4b17023SJohn Marino #endif
46