Bug 982 – Codeview: symbols of enum type are declared integer
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
Windows
Creation time
2007-02-19T04:33:27Z
Last change time
2019-08-23T01:46:37Z
Keywords
DebugInfo, pull
Assigned to
No Owner
Creator
Jascha Wetzel
Comments
Comment #0 by jascha — 2007-02-19T04:33:27Z
Although the correct typestring for enum types exists, symbols of that type are marked as being integers (T_INT4) instead of using the custom type.
Comment #1 by r.sagitario — 2017-07-22T08:14:30Z
still in git master
Comment #2 by r.sagitario — 2019-08-20T20:55:50Z
Still in dmd 2.087.1. Example:
enum EE
{
E1, E2, E3
}
void main()
{
EE e = EE.E1;
}
>dmd -m64 -g test.d
>cvdump.exe test.obj | grep.exe -C5 "D main"
(000044) S_GPROC32: [0000:00000000], Cb: 00000012, Type: 0x106E, D main
Parent: 00000000, End: 00000000, Next: 00000000
Debug start: 00000008, Debug end: 0000000D
(000072) S_ENDARG
(000076) S_REGREL32: rbp+FFFFFFF8, Type: T_INT4(0074), e
Comment #3 by dlang-bot — 2019-08-21T06:53:28Z
@rainers created dlang/dmd pull request #10328 "fix Issue 4372, 982 - CodeView: type of enumerator values reduced to …" fixing this issue:
- fix Issue 4372, 982 - CodeView: type of enumerator values reduced to base type in debug info
write a forward reference to the enum definition, it is emitted elsewhere
https://github.com/dlang/dmd/pull/10328
Comment #4 by dlang-bot — 2019-08-23T01:46:37Z
dlang/dmd pull request #10328 "fix Issue 4372, 982 - CodeView: type of enumerator values reduced to …" was merged into master:
- f4e4b7e6ff66ec4d0d2774f309731c03392327cc by Rainer Schuetze:
fix Issue 4372, 982 - CodeView: type of enumerator values reduced to base type in debug info
write a forward reference to the enum definition, it is emitted elsewhere
https://github.com/dlang/dmd/pull/10328