http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48176
--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-18 09:56:33 UTC --- That is related to .debug_ranges, not .debug_aranges. E.g. in the int main () { return 0; } case ranges_by_label_in_use is 0, not surprisingly, we don't emit .debug_ranges in that case. .debug_ranges is only needed if some function or lexical block or inlined function doesn't have a single range, but multiple ones.