digitalmars.D.bugs - [Issue 20460] New: Stack traces on OSX show wrong file / line
- d-bugmail puremagic.com (97/97) Dec 20 2019 https://issues.dlang.org/show_bug.cgi?id=20460
https://issues.dlang.org/show_bug.cgi?id=20460 Issue ID: 20460 Summary: Stack traces on OSX show wrong file / line Product: D Version: D2 Hardware: x86_64 OS: Mac OS X Status: NEW Severity: critical Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: pro.mathias.lang gmail.com To reproduce: - Add an assert(0) anywhere in DMD in a code path that will be triggered; - Compile dmd - Run it on some source code that triggers the assert: In my case I used: ``` diff --git a/src/dmd/expressionsem.d b/src/dmd/expressionsem.d index 577ae7abe..a18ecfbb6 100644 --- a/src/dmd/expressionsem.d +++ b/src/dmd/expressionsem.d -392,6 +392,9 private Expression searchUFCS(Scope* sc, UnaExp ue, Identifier ident) //printf("searchUFCS(ident = %s)\n", ident.toChars()); Loc loc = ue.loc; + if (sc || !sc) + assert(0); + // TODO: merge with Scope.search.searchScopes() Dsymbol searchScopes(int flags) { ``` Test file: ``` int foo; void bar(int) {} void main() { foo.bar; } ``` Result: ``` % ./generated/osx/release/64/dmd -run wysig.d --- ERROR: This is a compiler bug. Please report it via https://issues.dlang.org/enter_bug.cgi with, preferably, a reduced, reproducible example and the information below. DustMite (https://github.com/CyberShadow/DustMite/wiki) can help with the reduction. --- DMD v2.089.1-333-g403f33603-dirty predefs DigitalMars Posix OSX CppRuntime_Clang darwin LittleEndian D_Version2 all D_SIMD D_InlineAsm_X86_64 X86_64 D_LP64 D_PIC assert D_ModuleInfo D_Exceptions D_TypeInfo D_HardFloat D_ObjectiveC binary ./generated/osx/release/64/dmd version v2.089.1-333-g403f33603-dirty config ./generated/osx/release/64/dmd.conf DFLAGS -I./generated/osx/release/64/../../../../../druntime/import -I./generated/osx/release/64/../../../../../phobos -L-L./generated/osx/release/64/../../../../../phobos/generated/osx/release/64 -fPIC --- core.exception.AssertError dmd/expressionsem.d(396): Assertion failure ---------------- ??:? _d_assertp [0x1082169fd] dmd/access.d:394 dmd.expression.Expression dmd.expressionsem.searchUFCS(dmd.dscope.Scope*, dmd.expression.UnaExp, dmd.identifier.Identifier) [0x108010c70] dmd/access.d:394 dmd.expression.Expression dmd.expressionsem.resolveUFCSProperties(dmd.dscope.Scope*, dmd.expression.Expression, dmd.expression.Expression) [0x1080115f8] dmd/access.d:394 _ZN25ExpressionSemanticVisitor5visitEP8DotIdExp [0x1080232f4] dmd/access.d:394 _ZN8DotIdExp6acceptEP7Visitor [0x1080092a9] dmd/access.d:394 _Z18expressionSemanticP10ExpressionP5Scope [0x10803386b] dmd/access.d:394 _ZN24StatementSemanticVisitor5visitEP12ExpStatement [0x1080d86a9] dmd/access.d:394 _ZN12ExpStatement6acceptEP7Visitor [0x1080d3f11] dmd/access.d:394 _Z17statementSemanticP9StatementP5Scope [0x1080d858b] dmd/access.d:394 _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x1080d896f] dmd/access.d:394 _ZN17CompoundStatement6acceptEP7Visitor [0x1080d4889] dmd/access.d:394 _Z17statementSemanticP9StatementP5Scope [0x1080d858b] dmd/access.d:394 _ZN16Semantic3Visitor5visitEP15FuncDeclaration [0x1080ce365] dmd/access.d:394 _ZN15FuncDeclaration6acceptEP7Visitor [0x10803c399] dmd/access.d:394 _Z9semantic3P7DsymbolP5Scope [0x1080ccbd1] dmd/access.d:394 _ZN16Semantic3Visitor5visitEP6Module [0x1080ccfd7] dmd/access.d:394 _ZN6Module6acceptEP7Visitor [0x107fb1369] dmd/access.d:394 _Z9semantic3P7DsymbolP5Scope [0x1080ccbd1] dmd/access.d:394 int dmd.mars.tryMain(ulong, const(char)**, ref dmd.globals.Param) [0x10808f2e9] dmd/access.d:394 _Dmain [0x1080908fd] ``` Notice the repetitive dmd/access.d --
Dec 20 2019