Comments

Pre-remark: This patch does *not* enable finalization or polymorphic
deallocation.
* * *
Dear all,
The attached patch is a bit boring and invasive, but it paves the way to
FINAL support.
Changes of technical kind:
* Changed ABI for CLASS's virtual table (due to _final) - and, hence, it
bumps the .mod version
* The finalization wrapper is now generated (this should not but might
lead to ICEs)
* It also causes that the virtual table is now more often generated
New feature:
_copy no longer deallocates the "dst" argument. Doing so lead to bogus
finalization with ALLOCATE (exposed with the pending FINAL patch). As a
sideeffect, memset could be removed and CALLOC could be replased by
MALLOC (minute performance advantage). In order to keep the deallocation
in gfc_trans_class_array_init_assign, there is now a call to the
finalization wrapper.
Next steps:
* Add end-of-scope/intent(out) deallocation for polymorphic arrays
* Enable FINAL parsing
* Stepwise enabling for polymorphic deallocation/finalization
* Fix issues with ELEMENTAL(+optional) with intent(out)
* Fix some issues related to intrinsic assignment
* Fix fallout of any of those items
Build and regtested on x86-64-gnu-linux.
OK for the trunk?
Tobias