#include <iostream>
#define DEBUGGING_API_P(NAME, TYPE, VAR) \
- void NAME(const TYPE *); \
+ static void _##NAME(const TYPE *); \
void NAME(long p) { NAME(reinterpret_cast<const TYPE *>(p)); } \
- void NAME(const TYPE *VAR)
+ void NAME(const TYPE *p) \
+ { \
+ if (p == nullptr) \
+ { \
+ std::cout << "(nullptr)" << std::endl; \
+ } \
+ else \
+ { \
+ _##NAME(p); \
+ } \
+ } \
+ void _##NAME(const TYPE *VAR)
namespace
{
DEBUGGING_API_P(enco_dump_op, coco::Op, op)
{
- if (op != nullptr)
{
std::cout << describe(op) << std::endl;
}
- else
- {
- std::cout << "(nullptr)" << std::endl;
- }
}
DEBUGGING_API_P(enco_dump_op_tree, coco::Op, op)
{
- if (op != nullptr)
{
std::cout << describe(OpTree(op)) << std::endl;
}
- else
- {
- std::cout << "(nullptr)" << std::endl;
- }
}
DEBUGGING_API_P(enco_dump_all_ops, coco::Module, m)
{
- if (m == nullptr)
- {
- std::cout << "(nullptr)" << std::endl;
- return;
- }
-
SectionBuilder section_builder{"op"};
for (uint32_t n = 0; n < m->entity()->op()->size(); ++n)