On Thu, Nov 03, 2016 at 03:02:21PM +0100, Martin Liška wrote: > > But how would you be able to find out if there isn't any return *ptr; after > > the scope or similar (as MEM_REF)? With is_gimple_reg, they will be turned > > into SSA form and you can easily verify (uses of ASAN_POISON are a problem > > if they are encountered at runtime). What would you do for the > > must_live_in_memory vars? Add some pass that detects it, handle it somehow > > in addressable pass, handle it in SRA, ... ? > > If there's return of *ptr, there must be a &my_char, and it looks > _4 = MEM[(char *)&my_char]; > > properly identifies that my_char has address taken.
It doesn't. MEM_REF's ADDR_EXPR isn't considered to be address taking. Jakub