Issue 140331.1: C11 _Noreturn function specifier attribute DW_AT_noreturn

Author: Mark Wielaard
Champion: Adrian Prantl
Date submitted: 2014-03-31
Date revised:
Date closed:
Type: Enhancement
Status: Accepted
DWARF Version: 5
Section 3.3.1, pg 55
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.

--
5/14/2014 -- Accepted.  Value to be assigned by Editor.