In this testcase -Wuninitialized was warning about 'int i = i' without -Winit-self because the C++ front end always uses separate code for non-constant initialization. But for simple initialization, it makes sense to use DECL_INITIAL. Tested x86_64-pc-linux-gnu, applying to trunk.