ICG exclude of class member variables now defines incorrect memory offsets in io_src #311

Added back the code that set the offset of variables with the offsetof function. This
code is running by default.  Any code that includes #ifndef TRICK_ICG in
classes/structures will want this on.

Added a flag to ICG that allows us to turn off writing of these lines.  If the flag
is present, ICG may write out io_src code for private/protected variables that it could
not reach if an offsetof function was required.  Code cannot have any #ifndef TRICK_ICG
present in classes/structures for this to work.
This commit is contained in:
Alex Lin
2016-09-16 08:39:37 -05:00
parent c4a32600cc
commit ae07b26243
8 changed files with 116 additions and 15 deletions

View File

@ -36,7 +36,8 @@ class ClassValues : public ConstructValues {
/** Appends a vector of fields to field_descripts.
A vector comes from adding all inherited fields at once */
void addInheritedFieldDescriptions(std::vector<FieldDescription *>, unsigned int class_offset) ;
void addInheritedFieldDescriptions(std::vector<FieldDescription *>,
unsigned int class_offset, bool virtual_inherited) ;
/** Gets the list of fields in this class */
std::vector<FieldDescription *> getFieldDescription() ;