diff options
Diffstat (limited to 'lldb/examples/synthetic/bitfield/program.cpp')
-rw-r--r-- | lldb/examples/synthetic/bitfield/program.cpp | 112 |
1 files changed, 47 insertions, 65 deletions
diff --git a/lldb/examples/synthetic/bitfield/program.cpp b/lldb/examples/synthetic/bitfield/program.cpp index 5276824a2fb..1db4aa4e719 100644 --- a/lldb/examples/synthetic/bitfield/program.cpp +++ b/lldb/examples/synthetic/bitfield/program.cpp @@ -1,74 +1,56 @@ typedef unsigned int uint32_t; -enum MaskingOperator -{ - eMaskingOperatorDefault = 0, - eMaskingOperatorAnd = 1, - eMaskingOperatorOr = 2, - eMaskingOperatorXor = 3, - eMaskingOperatorNand = 4, - eMaskingOperatorNor = 5 +enum MaskingOperator { + eMaskingOperatorDefault = 0, + eMaskingOperatorAnd = 1, + eMaskingOperatorOr = 2, + eMaskingOperatorXor = 3, + eMaskingOperatorNand = 4, + eMaskingOperatorNor = 5 }; -class MaskedData -{ +class MaskedData { private: - uint32_t value; - uint32_t mask; - MaskingOperator oper; + uint32_t value; + uint32_t mask; + MaskingOperator oper; + public: - MaskedData( uint32_t V = 0, - uint32_t M = 0, - MaskingOperator P = eMaskingOperatorDefault) : - value(V), - mask(M), - oper(P) - { - } - - uint32_t apply() - { - switch(oper) - { - case eMaskingOperatorAnd: - return value & mask; - case eMaskingOperatorOr: - return value | mask; - case eMaskingOperatorXor: - return value ^ mask; - case eMaskingOperatorNand: - return ~(value & mask); - case eMaskingOperatorNor: - return ~(value | mask); - case eMaskingOperatorDefault: // fall through - default: - return value; - } - } - - void setValue(uint32_t V) - { - value = V; - } - - void setMask (uint32_t M) - { - mask = M; - } - - void setOperator(MaskingOperator P) - { - oper = P; - } + MaskedData(uint32_t V = 0, uint32_t M = 0, + MaskingOperator P = eMaskingOperatorDefault) + : value(V), mask(M), oper(P) {} + + uint32_t apply() { + switch (oper) { + case eMaskingOperatorAnd: + return value & mask; + case eMaskingOperatorOr: + return value | mask; + case eMaskingOperatorXor: + return value ^ mask; + case eMaskingOperatorNand: + return ~(value & mask); + case eMaskingOperatorNor: + return ~(value | mask); + case eMaskingOperatorDefault: // fall through + default: + return value; + } + } + + void setValue(uint32_t V) { value = V; } + + void setMask(uint32_t M) { mask = M; } + + void setOperator(MaskingOperator P) { oper = P; } }; -int main() -{ - MaskedData data_1(0xFF0F,0xA01F,eMaskingOperatorAnd); - MaskedData data_2(data_1.apply(),0x1AFC,eMaskingOperatorXor); - MaskedData data_3(data_2.apply(),0xFFCF,eMaskingOperatorOr); - MaskedData data_4(data_3.apply(),0xAABC,eMaskingOperatorAnd); - MaskedData data_5(data_4.apply(),0xFFAC,eMaskingOperatorNor); - MaskedData data_6(data_5.apply(),0x0000BEEF,eMaskingOperatorAnd); - return data_6.apply(); // <-- what comes out of here? +int main() { + MaskedData data_1(0xFF0F, 0xA01F, eMaskingOperatorAnd); + MaskedData data_2(data_1.apply(), 0x1AFC, eMaskingOperatorXor); + MaskedData data_3(data_2.apply(), 0xFFCF, eMaskingOperatorOr); + MaskedData data_4(data_3.apply(), 0xAABC, eMaskingOperatorAnd); + MaskedData data_5(data_4.apply(), 0xFFAC, eMaskingOperatorNor); + MaskedData data_6(data_5.apply(), 0x0000BEEF, eMaskingOperatorAnd); + return data_6.apply(); // <-- what comes out of here? }
\ No newline at end of file |