[LLVMdev] Warning about variable optimized away?

Dmitry Antipov antipov at dev.rtsoft.ru
Tue Aug 5 04:55:31 PDT 2014


Hello,

it it possible to get a kind of diagnostics if the variable
is totally optimized away?  For example, in:

void foo (struct some_type *obj) {
   ... some code where 'obj' is not used ...
   bar (obj->some_member);
   ... some code where 'obj' is not used again ...
   baz (obj->some_member);
}

'obj' is likely to be optimized away so only 'obj->some_member' really
exists (in a register or stack location).  Getting diagnostics
or preserving 'obj' may be important if there is a GC which scans
C stack and registers conservatively - if there is no direct reference
to 'obj', it's likely to be reclaimed and so 'obj->some_member'
becomes garbage.

Dmitry



More information about the llvm-dev mailing list