xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/d/dmd/root/rootobject.c (revision 627f7eb200a4419d89b531d55fccd2ee3ffdcde0)
1*627f7eb2Smrg /* Copyright (C) 1999-2019 by The D Language Foundation, All Rights Reserved
2*627f7eb2Smrg  * http://www.digitalmars.com
3*627f7eb2Smrg  * Distributed under the Boost Software License, Version 1.0.
4*627f7eb2Smrg  * (See accompanying file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)
5*627f7eb2Smrg  * https://github.com/D-Programming-Language/dmd/blob/master/src/root/object.c
6*627f7eb2Smrg  */
7*627f7eb2Smrg 
8*627f7eb2Smrg #include "dsystem.h"
9*627f7eb2Smrg #include "object.h"
10*627f7eb2Smrg #include "outbuffer.h"
11*627f7eb2Smrg 
12*627f7eb2Smrg /****************************** Object ********************************/
13*627f7eb2Smrg 
equals(RootObject * o)14*627f7eb2Smrg bool RootObject::equals(RootObject *o)
15*627f7eb2Smrg {
16*627f7eb2Smrg     return o == this;
17*627f7eb2Smrg }
18*627f7eb2Smrg 
compare(RootObject * obj)19*627f7eb2Smrg int RootObject::compare(RootObject *obj)
20*627f7eb2Smrg {
21*627f7eb2Smrg     size_t lhs = (size_t)this;
22*627f7eb2Smrg     size_t rhs = (size_t)obj;
23*627f7eb2Smrg     if (lhs < rhs)
24*627f7eb2Smrg         return -1;
25*627f7eb2Smrg     else if (lhs > rhs)
26*627f7eb2Smrg         return 1;
27*627f7eb2Smrg     return 0;
28*627f7eb2Smrg }
29*627f7eb2Smrg 
print()30*627f7eb2Smrg void RootObject::print()
31*627f7eb2Smrg {
32*627f7eb2Smrg     printf("%s %p\n", toChars(), this);
33*627f7eb2Smrg }
34*627f7eb2Smrg 
toChars()35*627f7eb2Smrg const char *RootObject::toChars()
36*627f7eb2Smrg {
37*627f7eb2Smrg     return "Object";
38*627f7eb2Smrg }
39*627f7eb2Smrg 
dyncast()40*627f7eb2Smrg int RootObject::dyncast() const
41*627f7eb2Smrg {
42*627f7eb2Smrg     return DYNCAST_OBJECT;
43*627f7eb2Smrg }
44*627f7eb2Smrg 
toBuffer(OutBuffer * b)45*627f7eb2Smrg void RootObject::toBuffer(OutBuffer *b)
46*627f7eb2Smrg {
47*627f7eb2Smrg     b->writestring("Object");
48*627f7eb2Smrg }
49