1
0
mirror of https://github.com/exaloop/codon.git synced 2025-06-03 15:03:52 +08:00
codon/test/cir/constant.cpp
A. R. Shajii 0bec6e2627
Refactor IR; updates for 2023 (#157)
* Refactor IR

* Update image size in docs
2023-01-08 14:24:10 -05:00

27 lines
748 B
C++

#include "test.h"
#include <fmt/format.h>
#include <sstream>
using namespace codon::ir;
TEST_F(CIRCoreTest, ConstTypeQueryAndReplace) {
auto *node = module->Nr<IntConst>(1, module->getIntType());
ASSERT_EQ(module->getIntType(), node->getType());
auto usedTypes = node->getUsedTypes();
ASSERT_EQ(1, usedTypes.size());
ASSERT_EQ(module->getIntType(), usedTypes[0]);
ASSERT_EQ(1, node->replaceUsedType(module->getIntType(), module->getIntType()));
}
TEST_F(CIRCoreTest, ConstCloning) {
auto VALUE = 1;
auto *node = module->Nr<IntConst>(VALUE, module->getIntType());
auto *clone = cast<IntConst>(cv->clone(node));
ASSERT_TRUE(clone);
ASSERT_EQ(VALUE, clone->getVal());
ASSERT_EQ(module->getIntType(), clone->getType());
}