mini-llvm
0.1.0
Toggle main menu visibility
Loading...
Searching...
No Matches
NullPtrConstant.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: MIT
2
3
#pragma once
4
5
#include <memory>
6
#include <string>
7
#include <typeinfo>
8
9
#include "
mini-llvm/ir/Constant.h
"
10
#include "
mini-llvm/ir/Constant/PointerConstant.h
"
11
#include "
mini-llvm/ir/ConstantVisitor.h
"
12
#include "
mini-llvm/ir/Type.h
"
13
#include "
mini-llvm/ir/Type/Ptr.h
"
14
#include "
mini-llvm/ir/Value.h
"
15
16
namespace
mini_llvm::ir
{
17
18
class
NullPtrConstant
final :
public
PointerConstant
{
19
public
:
20
void
accept
(
ConstantVisitor
&visitor)
override
{
21
visitor.
visitNullPtrConstant
(*
this
);
22
}
23
24
void
accept
(
ConstantVisitor
&visitor)
const override
{
25
visitor.
visitNullPtrConstant
(*
this
);
26
}
27
28
std::unique_ptr<Type>
type
()
const override
{
29
return
std::make_unique<Ptr>();
30
}
31
32
std::string
format
()
const override
{
33
return
"null"
;
34
}
35
36
std::unique_ptr<Value>
clone
()
const override
{
37
return
std::make_unique<NullPtrConstant>();
38
}
39
40
protected
:
41
bool
equals
(
const
Constant
&other)
const override
{
42
return
typeid
(*this) ==
typeid
(other);
43
}
44
};
45
46
}
// namespace mini_llvm::ir
PointerConstant.h
Ptr.h
Type.h
Value.h
mini_llvm::ir::ConstantVisitor
Definition
ConstantVisitor.h:26
mini_llvm::ir::ConstantVisitor::visitNullPtrConstant
virtual void visitNullPtrConstant(NullPtrConstant &C)
Definition
ConstantVisitor.h:48
mini_llvm::ir::Constant
Definition
Constant.h:13
mini_llvm::ir::NullPtrConstant
Definition
NullPtrConstant.h:18
mini_llvm::ir::NullPtrConstant::accept
void accept(ConstantVisitor &visitor) override
Definition
NullPtrConstant.h:20
mini_llvm::ir::NullPtrConstant::format
std::string format() const override
Definition
NullPtrConstant.h:32
mini_llvm::ir::NullPtrConstant::clone
std::unique_ptr< Value > clone() const override
Definition
NullPtrConstant.h:36
mini_llvm::ir::NullPtrConstant::type
std::unique_ptr< Type > type() const override
Definition
NullPtrConstant.h:28
mini_llvm::ir::NullPtrConstant::equals
bool equals(const Constant &other) const override
Definition
NullPtrConstant.h:41
mini_llvm::ir::NullPtrConstant::accept
void accept(ConstantVisitor &visitor) const override
Definition
NullPtrConstant.h:24
mini_llvm::ir::PointerConstant
Definition
PointerConstant.h:10
ConstantVisitor.h
Constant.h
mini_llvm::ir
Definition
Argument.h:13
include
mini-llvm
ir
Constant
NullPtrConstant.h
Generated by
1.17.0