Jonas Devlieghere ceff6644bb Remove header grouping comments.
This patch removes the comments grouping header includes. They were
added after running IWYU over the LLDB codebase. However they add little
value, are often outdates and burdensome to maintain.

llvm-svn: 346626
2018-11-11 23:17:06 +00:00

57 lines
1.5 KiB
C++

typedef unsigned int uint32_t;
enum MaskingOperator {
eMaskingOperatorDefault = 0,
eMaskingOperatorAnd = 1,
eMaskingOperatorOr = 2,
eMaskingOperatorXor = 3,
eMaskingOperatorNand = 4,
eMaskingOperatorNor = 5
};
class MaskedData {
private:
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; }
};
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?
}