------- Comment #2 from rguenth at gcc dot gnu dot org  2010-03-28 12:58 -------
The return statement does not have line information, even without LTO:

f2 (int i, int j)
{
<bb 2>:
  [/home/richard/src/trunk/gcc/testsuite/gcc.dg/guality/pr41353-1.c : 23:5] j_3
= j_1(D) + i_2(D);
  [/home/richard/src/trunk/gcc/testsuite/gcc.dg/guality/pr41353-1.c : 23:5] #
DEBUG j => j_3
  [/home/richard/src/trunk/gcc/testsuite/gcc.dg/guality/pr41353-1.c : 26:7] #
DEBUG i1 => [/home/richard/src/trunk/gcc/testsuite/gcc.dg/guality/pr41353-1.c :
26] i_2(D) * 2
  [/home/richard/src/trunk/gcc/testsuite/gcc.dg/guality/pr41353-1.c : 27:7] #
DEBUG i2 => [/home/richard/src/trunk/gcc/testsuite/gcc.dg/guality/pr41353-1.c :
27] i_2(D) * 3
  return j_3;

}

(same dump with -flto).  There's no line 28 in the debug information of
either variant - still gdb breaks on the closing } for -O2 but on the
start of f3 () for -O2 -flto.  But the non-LTO variant has a line advance
entry to line 29.

What is missing is visible in the .expand dump - the non-LTO variant
does have line number information on the function return (line 29), but
the LTO variant does not.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43552

Reply via email to