I've run "readelf -wl" to look at the DWARF-2 correspondence between line numbers and addresses. The address corresponding to the line in question is also associated with lines in other source files. So something looks screwy with g++.
The problem doesn't occur with g++ 3.0 or before, and it does with every version of g++ since 3.0.1. The program includes many files & some large libraries, and I haven't been able to generate a simple demonstration case.
Any suggestions about how to isolate this bug are welcome. So far, I've only been able to determine that it's in the changes made between g++ 3.0 and 3.0.1.
The problem occurs on GNU/Linux on an i686 machine, but not on a Sun workstation running Solaris.
This is a show stopper for months of work, and I'm pretty much at a loss.
-Allen Hopkins