on alpha-linux target the unwinder reports sentinel frame.
imho it has no sense.
$ gcc testcase.c -O2; ./a.out
ip = 0x120000768
ip = 0x20000076860
ip = 0x120000668
ip = (nil)
a.out: testcase.c:10: helper: Assertion `ip != 0' failed.
$ cat testcase.c
#include <dlfcn.h>
#include <unwind.h>
#include <assert.h>
#include <stdio.h>
_Unwind_Reason_Code helper( struct _Unwind_Context* ctx, void* arg )
{
_Unwind_Ptr ip = _Unwind_GetIP( ctx );
printf( "ip = %p\n", (void*)ip );
assert( ip != 0 );
return _URC_NO_REASON;
}
int main()
{
_Unwind_Backtrace( helper, 0 );
return 0;
}
--
Summary: unwinder reports sentinel frame.
Product: gcc
Version: 4.1.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pluto at agmk dot net
GCC target triplet: alpha-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28854