Today (23 Jan 2004) I changed the Xtensa port to define SPLIT_COMPLEX_ARGS so that _Complex function arguments are split into separate real and imaginary parts. After that change, I noticed that I couldn't see any _Complex arguments from GDB. The following input will demonstrate the problem: _Complex int cmplx (_Complex int arg) { return arg; } int main (void) { _Complex int c = (1,2); c = cmplx(c); return 0; } With the default of DWARF2 for this target, the "formal parameter" TAG for "arg" is produced but it has no AT_location entry. If I use "-gstabs", there is no ".stabs" entry at all for "arg". I'm not aware of anything specific to the Xtensa port that would cause this, so the same problem is likely to occur with other ports that define SPLIT_COMPLEX_ARGS (currently alpha and rs6000/AIX).
Confirmed on the mainline with a cross compiler to powerpc-ibm-aix.
The missing debug information is a regression from GCC 3.3.
Add CC and known work/fail
Postponed until GCC 3.4.3.
Subject: Bug 13841 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_4-branch Changes by: rth@gcc.gnu.org 2004-10-13 23:18:19 Modified files: gcc : ChangeLog function.c Log message: PR debug/13841 * function.c (instantiate_decl): Recurse for CONCAT. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.2326.2.655&r2=2.2326.2.656 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/function.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.483.4.18&r2=1.483.4.19
Subject: Bug 13841 CVSROOT: /cvs/gcc Module name: gcc Changes by: rth@gcc.gnu.org 2004-10-13 23:25:18 Modified files: gcc : ChangeLog function.c Log message: PR debug/13841 * function.c (instantiate_decl): Recurse for CONCAT. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.5868&r2=2.5869 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/function.c.diff?cvsroot=gcc&r1=1.582&r2=1.583
Fixed.