Hi.
Following the recent introduction of more detailed CLOBBER types in GCC,
a minor
inconsistency has been identified in the description of
CLOBBER_OBJECT_BEGIN:
/* Beginning of object lifetime, e.g. C++ constructor. */
CLOBBER_OBJECT_BEGIN
This comment appears somewhat contradictory, as according to the C++
standard,
an object's lifetime commences upon completion of its initialization:
The lifetime of an object of type T begins when:
-- storage with the proper alignment and size for type T is obtained,
and
-- its initialization (if any) is complete (including vacuous
initialization)
etc.
However, GCC emits CLOBBERs of this type at the beginning of a
constructor.
Does anybody have any ideas how to make this description more precise?
It'd be
better to clearly define what an object's lifetime is at the GIMPLE
IMHO.
---
With best regards,
Daniil