From 10d7371fe052ffb99a391e231250da985ae5fa6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Koren=C4=8Dik?= Date: Wed, 13 Mar 2019 15:06:37 +0100 Subject: [PATCH] Better bitset ctor of GMask --- remill/BC/Mask.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/remill/BC/Mask.h b/remill/BC/Mask.h index fc418b6c..dfa8cbf7 100644 --- a/remill/BC/Mask.h +++ b/remill/BC/Mask.h @@ -155,7 +155,8 @@ struct GMask : public Container { // std::bitset explicit GMask(std::size_t used, const std::true_type &) : - Container(std::pow(2, used) - 1) {} + Container((1 << used) - 1) { + } // Everything else explicit GMask(std::size_t used, const std::false_type &) : Container(used, true) {} @@ -316,6 +317,23 @@ struct TMask { }; +template +inline std::ostream &operator<<(std::ostream &os, const TMask &mask) { + os << "Ret_type:" << std::endl; + for (auto i = 0U; i < mask.ret_type_mask.size(); ++i) { + os << "\t" << mask.ret_type_mask[i]; + } + os << std::endl; + + os << "Param_type:" << std::endl; + for (auto i = 0U; i < mask.param_type_mask.size(); ++i) { + os << "\t" << mask.param_type_mask[i]; + } + os << std::endl; + + return os; +} + template inline std::ostream &operator<<(std::ostream &os, const TypeMask &mask) { os << "Ret_type:" << std::endl;