On Sun, 2014-03-30 at 21:06 +0200, Mark Wielaard wrote: > At first I didn't file an enhancement request since there are probably > no changes in how to interpret the meaning of DWARF attributes. But for > debuggers it is needed information to be able to correctly handle > expressions for the user related to the current CU since C11 did add > some keywords and so allows some expressions that are not valid in > earlier standards.
I also filed a proposal to add a DW_AT_noreturn attribute for DW_TAG_subprogram to describe the new C11 (and available through an attribute in the GNU toolchain) noreturn function specifier: Subject: C11 _Noreturn function specifier attribute DW_AT_noreturn Name: Mark Wielaard Email: m...@redhat.com Section: 3.3.1 Page: 55 Type: Enhancement C11 introduces the new keyword _Noreturn that can be used as function specifier like inline. A function declared with a _Noreturn function specifier shall not return to its caller (it causes undefined behavior if it would). Similar functionality is available in the GNU Toolchain through the noreturn function attribute. It is sometimes useful for a debugger to know which functions can only be called, but shall never return. Figure 2. Attribute names Add DW_AT_noreturn Specifies a function that doesn't return to its caller. 3.3.1 General Subroutine and Entry Point Information Add a paragraph at the end saying: A subprogram entry may have a DW_AT_noreturn attribute, which is a flag. The attribute indicates whether the subroutine was declared with the "noreturn" keyword or property indicating that the function can be called, but will never return to its caller. Figure 20. Attribute encodings Add DW_AT_noreturn 0xXX flag. APPENDIX A ATTRIBUTES BY TAG VALUE Add DW_AT_noreturn to DW_TAG_subprogram. _______________________________________________ Dwarf-Discuss mailing list Dwarf-Discuss@lists.dwarfstd.org http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org