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