This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/54887] New: gdb test case failure with mi-var-rtti
- From: "arnez at linux dot vnet.ibm.com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 10 Oct 2012 14:38:49 +0000
- Subject: [Bug debug/54887] New: gdb test case failure with mi-var-rtti
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54887
Bug #: 54887
Summary: gdb test case failure with mi-var-rtti
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: debug
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: arnez@linux.vnet.ibm.com
Current upstream gcc causes a regression with the gdb test case
mi-var-rtti.exp:
FAIL: gdb.mi/mi-var-rtti.exp: create varobj for ptr (without RTTI) in
use_rtti_for_ptr
...
Here's a link to the C++ source:
http://sourceware.org/cgi-bin/cvsweb.cgi/~checkout~/src/gdb/testsuite/gdb.mi/mi-var-rtti.cc?rev=1.1&cvsroot=src
The test case sets a breakpoint in use_rtti_for_ptr_test() on the last
variable declaration ('constPtrConst', line 37) and then advances with
'next' to the return statement. There it tries to access the variable
'ptr', but the 'next' already carried us into the epilogue beyond that
variable's lexical block. This is because the line number information
now places the return statement _after_ everything else, even after
the destructor call for 'd'.
I've verified the failure on x86_64 and s390x. The regression was
introduced by: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191338