Bug 18307 – -transition=intpromote deprecation message confusing

Status
NEW
Severity
normal
Priority
P3
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Mac OS X
Creation time
2018-01-26T21:40:49Z
Last change time
2024-12-13T18:56:22Z
Assigned to
No Owner
Creator
Timothee Cour
Moved to GitHub: dmd#17834 →

Comments

Comment #0 by timothee.cour2 — 2018-01-26T21:40:49Z
see https://github.com/msgpack/msgpack-d/pull/99/files/728edb1d58c8e027adf5740e3fbcf425639710c4#r164228277 for context. dmd.2_078_1/.dub/packages/msgpack-d-1.0.0-beta.6/msgpack-d/src/msgpack/unpacker.d(199,30): Deprecation: integral promotion not done for -header, use '-transition=intpromote' switch or -cast(int)(header) * should that be -int(header) instead of -cast(int)(header) ? * could dmd also report the type of `header` since it already knows about it?
Comment #1 by reachzach — 2018-04-15T02:48:20Z
I tested it and this works: // change this: // value = -(cast(T)-header); // to this: value = cast(T)cast(byte)header; header is a ubyte. When changed to a byte, in this context, it becomes negative. The compiler then creates a corresponding negative int.
Comment #2 by reachzach — 2018-04-15T02:50:14Z
...or whatever negative Integral type it requires. (I did only test it with `int`, but I think it should work regardless.
Comment #3 by robert.schadek — 2024-12-13T18:56:22Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/17834 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB