June 05, 2014 [Issue 12860] New: REG 2.065: typeid(_error_) symbols leaks to backend | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12860 Issue ID: 12860 Summary: REG 2.065: typeid(_error_) symbols leaks to backend Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: regression Priority: P1 Component: DMD Assignee: nobody@puremagic.com Reporter: ibuclaw@gdcproject.org Reduced from the 2.065 testsuite: --- void test83() { assert(!__traits(compiles, typeid(inout(int*) ()))); } --- This leaks a typeid(_error_) TypeInfoDeclaration to the backend, and expects it to compile the Error symbol down to object file. With DMD, this appears in the object file as: .data._D10TypeInfo_@6__initZ 0000000000000010 _D10TypeInfo_@6__initZ However, given the invalid name of the symbol, it instead causes the following error in GDC: Assembler messages: 19: Error: junk at end of line, first unrecognised character is `@' 22: Error: junk at end of line, first unrecognised character is `_' 23: Error: expected comma after name `_D10TypeInfo_' in .size directive 24: Error: invalid character '@' in mnemonic This is preventing GDC from updating to 2.065 frontend sources. It's hard to track down which commit caused this, however looking at the specific test, it shows areas around these PRs: https://github.com/D-Programming-Language/dmd/pull/3081/files https://github.com/D-Programming-Language/dmd/pull/3034/files -- |
Copyright © 1999-2021 by the D Language Foundation