------- Comment #10 from jakub at gcc dot gnu dot org 2009-10-09 18:54 ------- Yes, it is a bug and I'll change it, but I wonder why it makes a difference (unless you're using PCH). .cfi_sections is only emitted if: if (dwarf2out_do_cfi_asm ()) { #ifndef TARGET_UNWIND_INFO if (USING_SJLJ_EXCEPTIONS || (!flag_unwind_tables && !flag_exceptions)) #endif fprintf (asm_out_file, "\t.cfi_sections\t.debug_frame\n"); } #endif but if !HAVE_CFI_SECTIONS_DIRECTIVE, dwarf2out_do_cfi_asm () has: if (!HAVE_GAS_CFI_SECTIONS_DIRECTIVE) { #ifdef TARGET_UNWIND_INFO return false; #else if (USING_SJLJ_EXCEPTIONS || (!flag_unwind_tables && !flag_exceptions)) return false; #endif }
i.e. will return false under the exact same condition that dwarf2_init would allow it. The only exception is when using PCH, you could create PCH with saved_do_cfi_asm true and then load it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40521