On 11/25/14 15:57, Mark Wielaard wrote:
This implements the DWARFv5 noreturn proposal:
http://dwarfstd.org/ShowIssue.php?issue=140331.1

TREE_THIS_VOLATILE on a FUNCTION_DECL node means the function does not
return normally. This catches the traditional noreturn GNU attribute,
the C11 _Noreturn keyword and the C++11 [[noreturn]] attribute.

This relies on the DW_AT_noreturn constant defined in the DWARFv5 DRAFT:
http://www.dwarfstd.org/doc/dwarf5.20141029.pdf
We could also use a new GNU extension if we don't trust these constants
to be stable.

gcc/ChangeLog

        * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
        function decl has TREE_THIS_VOLATILE.

gcc/testsuite/ChangeLog

        * g++.dg/debug/dwarf2/noreturn-function.C: New test.
        * gcc.dg/debug/dwarf2/noreturn-function-attribute.c: Likewise.
        * gcc.dg/debug/dwarf2/noreturn-function-keyword.c: Likewise.

include/ChangeLog

        * dwarf2.def (DW_AT_noreturn): New DWARF5 attribute.
Jason and Jakub have the final say here.

Presumably we don't have any sense when the values will be assigned, right? Any chance we could speed that along a bit?

jeff

Reply via email to