http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48176
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-18 09:32:13 UTC --- If we want to be extra safe (and for 4.6 we need to be), I think if (fde_table_in_use && info_section_emitted) or if ((arange_table_in_use || text_section_used || cold_text_section_used) && info_section_emitted) are the conditions to use. I think I prefer the latter, which is more explicit on what it is testing, in particular output only if there will be any aranges within the section actually emitted, and when there is a .Ldebug_info0 to point the aranges to.