Thread overview
[Issue 17559] [REG2.073.0] Wrong line number in stack trace
Jun 26, 2017
Rainer Schuetze
Jun 26, 2017
Vladimir Panteleev
Jun 26, 2017
Rainer Schuetze
Jun 27, 2017
Rainer Schuetze
Jun 28, 2017
Walter Bright
Jun 28, 2017
Vladimir Panteleev
Oct 07, 2017
Rainer Schuetze
June 26, 2017
https://issues.dlang.org/show_bug.cgi?id=17559

Rainer Schuetze <r.sagitario@gmx.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |r.sagitario@gmx.de

--- Comment #1 from Rainer Schuetze <r.sagitario@gmx.de> ---
Works alright on Windows. Anything special in mod.d or can it be omitted?

--
June 26, 2017
https://issues.dlang.org/show_bug.cgi?id=17559

--- Comment #2 from Vladimir Panteleev <dlang-bugzilla@thecybershadow.net> ---
(In reply to Rainer Schuetze from comment #1)
> Works alright on Windows.

Linux x64 here.

> Anything special in mod.d or can it be omitted?

If fun is in the same file as main, the line number still changes between versions, but it points at the line containing fun's signature. That's not so bad - it's not useful but at least it's not misleading wrong, as when fun is in a separate module.

--
June 26, 2017
https://issues.dlang.org/show_bug.cgi?id=17559

--- Comment #3 from Rainer Schuetze <r.sagitario@gmx.de> ---
Ok, I can reproduce it with Win64 if I remove the (bad) condition that disallows   decreasing line numbers.

--
June 27, 2017
https://issues.dlang.org/show_bug.cgi?id=17559

--- Comment #4 from Rainer Schuetze <r.sagitario@gmx.de> ---
You get the same result without default parameters, too:

///////////// test.d /////////////
import mod;

void main()
{
    fun(1, 10);
    fun(2, 10);
    fun(3, 10);
    fun(4, 10);
}
////////////// mod.d /////////////
void fun(int n, int defParam)
{
    assert(n != 4);
}
//////////////////////////////////


The problem seems to be that the backend always performs common sub expression elimination, mapping all instances of "10" to the same expression instance and then emitting its location.

I suspect this exists since forever, but I haven't tried older versions yet.

--
June 28, 2017
https://issues.dlang.org/show_bug.cgi?id=17559

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@digitalmars.com

--- Comment #5 from Walter Bright <bugzilla@digitalmars.com> ---
This is not a regression. The code deleted by https://github.com/dlang/dmd/pull/6947 has been there for 30 years.

--
June 28, 2017
https://issues.dlang.org/show_bug.cgi?id=17559

--- Comment #6 from Vladimir Panteleev <dlang-bugzilla@thecybershadow.net> ---
How do you define a regression? If something worked and now it doesn't work then it's a regression from the user's perspective. When latent bugs are exposed by some change or another, it doesn't matter how long said bugs were there.

--
October 07, 2017
https://issues.dlang.org/show_bug.cgi?id=17559

Rainer Schuetze <r.sagitario@gmx.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull, symdeb

--- Comment #7 from Rainer Schuetze <r.sagitario@gmx.de> ---
https://github.com/dlang/dmd/pull/6947

--
November 18, 2017
https://issues.dlang.org/show_bug.cgi?id=17559

--- Comment #8 from github-bugzilla@puremagic.com ---
Commits pushed to master at https://github.com/dlang/dmd

https://github.com/dlang/dmd/commit/127d639b6bbd82d1294da884a97de310e52985e0 fix issue 17559 - [REG2.073.0] Wrong line number in stack trace

only emit line number info for the first emission of common sub expressions

https://github.com/dlang/dmd/commit/c6a948b0bf11ce8a34d49614155507c1cb687484 Merge pull request #6947 from rainers/issue17559

fix issue 17559 - [REG2.073.0] Wrong line number in stack trace

--
November 18, 2017
https://issues.dlang.org/show_bug.cgi?id=17559

github-bugzilla@puremagic.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--
December 18, 2017
https://issues.dlang.org/show_bug.cgi?id=17559

--- Comment #9 from github-bugzilla@puremagic.com ---
Commits pushed to stable at https://github.com/dlang/dmd

https://github.com/dlang/dmd/commit/127d639b6bbd82d1294da884a97de310e52985e0 fix issue 17559 - [REG2.073.0] Wrong line number in stack trace

https://github.com/dlang/dmd/commit/c6a948b0bf11ce8a34d49614155507c1cb687484 Merge pull request #6947 from rainers/issue17559

--