26 T(*getter)(
void* address),
27 void(*setter)(
void* address, T value))
30 get_bitfield_value = getter;
31 set_bitfield_value = setter;
39 get_bitfield_value = original.get_bitfield_value;
40 set_bitfield_value = original.set_bitfield_value;
57 return MemberClass::BITFIELD;
73 (*set_bitfield_value)(struct_address, 0);
80 if (integer_value_p) {
83 (*set_bitfield_value)( struct_address, rvalue );
86 std::cerr <<
"ERROR: Attempt to assign non-integer value to a bitfield.";
92 return new IntegerValue((*get_bitfield_value)( struct_address ));
97 void printValue(std::ostream &s,
void *struct_address)
const {
99 T value = (*get_bitfield_value)( struct_address );
111 std::string s(
"<invalid-bitfield-type>");
118 std::ostringstream oss;
124 T (* get_bitfield_value)(
void* addr);
125 void (* set_bitfield_value)(
void* addr, T value);
Definition: BitfieldStructMember.hpp:15
BitfieldStructMember< T > & operator=(const BitfieldStructMember< T > &rhs)=delete
~BitfieldStructMember()
Definition: BitfieldStructMember.hpp:68
void printValue(std::ostream &s, void *struct_address) const
Definition: BitfieldStructMember.hpp:97
StructMember * clone() const
Definition: BitfieldStructMember.hpp:46
std::string getTypeSpecName() const
Definition: BitfieldStructMember.hpp:110
std::string toString() const
Definition: BitfieldStructMember.hpp:117
BitfieldStructMember(std::string name, T(*getter)(void *address), void(*setter)(void *address, T value))
Definition: BitfieldStructMember.hpp:25
bool validate()
Definition: BitfieldStructMember.hpp:52
Value * getValue(void *struct_address) const
Definition: BitfieldStructMember.hpp:90
MemberClass::e getMemberClass() const
Definition: BitfieldStructMember.hpp:56
void clearValue(void *struct_address) const
Definition: BitfieldStructMember.hpp:72
BitfieldStructMember(const BitfieldStructMember< T > &original)
Definition: BitfieldStructMember.hpp:37
void assignValue(void *struct_address, Value *v) const
Definition: BitfieldStructMember.hpp:78
IntegerValue is a Value that represents an integer value on the right-hand-side of an equation.
Definition: IntegerValue.hpp:9
long long getIntegerValue() const
Definition: IntegerValue.cpp:28
Value is an abstract base-class that represents a value on the right-hand-side of an assignment.
Definition: Value.hpp:9
e
Definition: AllocInfo.hpp:23
Represent a normal or static member of a struct.
Definition: StructMember.hpp:11
std::string getName() const
Get the name of this struct member.
Definition: StructMember.hpp:59