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

Reply via email to