Generated internal implementations of abstract classes in a new pass.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Generated the proper return statements in the abstract implementations.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Implemented the MS branch of the abstract implementations.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Fixed a bug in MS mode and added a test.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Corrected the implementation of abstract methods to properly handle classes, instance arguments and indirect return types.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Fixed the allocation of internal abstract implementations, and fixed their constructors to take a pointer to the abstract type.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Updated the test code for abstract impls woth more pure functions. However, the test now fails so it is ignored for the time being.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Moved the getting of the access of a class as a string to a separate function.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Replaced a hard-coded variable name.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Moved the generation of a virtual table call to a separate function, for independence on back-ends.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Separated the logic for abstracts impls into small functions.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Renamed AbstractImplementationsPass to GeenrateAbstractImplementationsPass.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Added an off by default option for generating abstract implementations because the MS ABI branch does not always work.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Added a hard-coded for the time being option indicating whether the wrapped lib is 32-bit and used that option to generate the v-table offsets.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Commented the pass about internal impls of abstract classes. Cosmetic fixes.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Changed the parameter type comparer to work with qualified types because overriding cannot change the qualification of types.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Documented the addition of internal implementations to the respective unit.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>