Thread overview | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
April 26, 2017 [Issue 17352] Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17352 Ketmar Dark <ketmar@ketmar.no-ip.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ketmar@ketmar.no-ip.org -- |
April 26, 2017 [Issue 17352] Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17352 --- Comment #1 from Ketmar Dark <ketmar@ketmar.no-ip.org> --- some details regarding the bug: previously, dmd happily creates .o file, and then linker complains about duplicate definition. and now, i have no way to know *what* symbol was defined multiple times. so this is not about "compiler doesn't check for two `foo()`s", it's about compiler ICEing now, and i have no way to know which symbol i redefined. -- |
April 26, 2017 [Issue 17352] [REG 2.075a] Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17352 b2.temp@gmx.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |b2.temp@gmx.com Summary|Internal error: |[REG 2.075a] Internal |ddmd/backend/elfobj.c 1739 |error: |on duplicate definition |ddmd/backend/elfobj.c 1739 | |on duplicate definition --- Comment #2 from b2.temp@gmx.com --- x86-64 seems to be affected too but in a different way. The example provided previously compiles and links, instead of complaining about double definition. -- |
April 28, 2017 [Issue 17352] [REG 2.075a] Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17352 Martin Nowak <code@dawg.eu> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |code@dawg.eu --- Comment #3 from Martin Nowak <code@dawg.eu> --- That goes on me I think, you've just found another way to emit 2 different functions with identical mangling. https://github.com/dlang/dmd/pull/6719, fix for Issue 17339 This should be an error in the frontend already, b/c the 2 foos aren't overrideable. -- |
April 28, 2017 [Issue 17352] [REG 2.075a] Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17352 --- Comment #4 from Ketmar Dark <ketmar@ketmar.no-ip.org> --- yeah. but the frontend will check for conflicting overloads only when `foo()` will be called. i guess this was done to gain some compilation speed by not checking each symbol against other symbols (O(n^2), i think). but this can be done differently, by using a hash table of all emited mangled names. this should be amortized O(n), and virtually painless. i mean, yes, the frontend should check for conflicting overloads even if they weren't called anywhere. -- |
May 31, 2017 [Issue 17352] [REG 2.075a] Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17352 --- Comment #5 from Martin Nowak <code@dawg.eu> --- (In reply to Ketmar Dark from comment #4) > i mean, yes, the frontend should check for conflicting overloads even if they weren't called anywhere. Could be easily checked in overloadInsert et.al. -- |
June 29, 2017 [Issue 17352] [REG 2.075a] Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17352 --- Comment #6 from Martin Nowak <code@dawg.eu> --- cat > bug.d << CODE void bug(Args...)() { } void test(bool coin) { if (coin) { string foobar; bug!foobar(); } else { string foobar; bug!foobar(); } } CODE ---- dmd -c bug.d ---- Internal error: ddmd/backend/elfobj.c 1739 ---- This is a real instance of this bug caused by ambiguous mangling of local variables (see issue 14831). Interestingly enough `void bug(alias var)()` only outputs a single template instance :o. -- |
July 01, 2017 [Issue 17352] [REG 2.075a] Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17352 --- Comment #7 from github-bugzilla@puremagic.com --- Commits pushed to stable at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/76affab78fec0c9acb0253d9672c5c0bdf843dd4 fix Issue 17352 - Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition https://github.com/dlang/dmd/commit/3440f186b246f76c1dba53c0d67e01e00dea633c Merge pull request #6955 from MartinNowak/fix17352 fix Issue 17352 - Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition -- |
July 01, 2017 [Issue 17352] [REG 2.075a] Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17352 github-bugzilla@puremagic.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED -- |
July 05, 2017 [Issue 17352] [REG 2.075a] Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17352 --- Comment #8 from github-bugzilla@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/76affab78fec0c9acb0253d9672c5c0bdf843dd4 fix Issue 17352 - Internal error: ddmd/backend/elfobj.c 1739 on duplicate definition https://github.com/dlang/dmd/commit/3440f186b246f76c1dba53c0d67e01e00dea633c Merge pull request #6955 from MartinNowak/fix17352 -- |
Copyright © 1999-2021 by the D Language Foundation