[PATCH] D3635: DebugInfo: Emit any enum with a referenced enum constant.

David Blaikie via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 4 11:43:20 PDT 2016

dblaikie abandoned this revision.
dblaikie added a subscriber: rsmith.
dblaikie added a comment.

In http://reviews.llvm.org/D3635#44720, @rsmith wrote:

> Implementation LGTM, if you decide that you want to go in this direction.

Just looking over some old patches/git branches I had lying around.

It seems what I might need to make this closer to GCC's size/fidelity tradeoff, is the ability to detect if the use of the enumerator was an ODR use. So that this:

  enum X { Y };
  int i = Y;

was a use, but this:

  int i[Y];

was not.

Is that reasnable? Can I practically detect that property in MarkAnyDeclReferenced?

(is "int i = Y;" an ODR use? Perhaps I'm getting the terminology wrong... maybe there is no nice linguistic property that distinguishes these two cases?)

& just for the record, the patch as it stands grows the .dwo size for the dwos build for the clang binary by a little over 18% :/

& using the MightBeOdrUse flag to MarkAnyDeclReferenced didn't seem to change the array case behavior above - I didn't get aggregate numbers to see if it had any impact.


More information about the cfe-commits mailing list