On Sat, Apr 21, 2018 at 02:13:30PM -0700, Kees Cook wrote: > Does this mean we end up with redundant initializers, or are they > optimized away in later passes? I believe the plugin results in redundant initializers because the early inline phase puts the appropriate declarations in the caller's scope. I guess updating the inline function to have an initializer propagates the duplicate initializer. I don't understand the complete interactions here, but this is what I'm seeing. I also can't comment on why they aren't being optimized out, but I assume it's because they live in different basic blocks. By waiting to do it after inlining is done, the inlined functions are not modified to have initializers as the function that uses the inlined function should have the initializing code. Thanks, Dennis