You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I downloaded a newer version of DMD and when I went to compile some code, I got a LOT of intpromote deprecation errors. Many of them repeated for the same line, and in one case it was repeated 300+ times for a single line of code.
This is probably because this particular function gets a lot of different template parameters when running unit tests.
/Users/pineapple/Dropbox/Projects/mach.d/mach/math/bits/inject.d(112): Deprecation: integral promotion not done for -cast(ubyte)bit, use '-transition=intpromote' switch or -cast(int)(cast(ubyte)bit)
This was the function causing the error, due to `-(cast(ubyte) bit)`
/// Inject bit into a value where the bit offset is known at compile time.
/// When the `assumezero` template argument is true, the operation is able
/// to be optimized by assuming the targeted bits are all initialized to 0.
auto injectbit(uint offset, bool assumezero = false, T)(
T value, in bool bit
) if(
offset < T.sizeof * 8
){
enum byteoffset = offset / 8;
enum bitoffset = offset % 8;
T target = value;
auto ptr = cast(ubyte*) &target + byteoffset;
static if(assumezero){
*ptr |= cast(ubyte) bit << bitoffset;
}else{
*ptr ^= (-(cast(ubyte) bit) ^ *ptr) & (1 << bitoffset);
}
return target;
}
The text was updated successfully, but these errors were encountered:
Sophie reported this on 2018-05-31T11:25:57Z
Transferred from https://issues.dlang.org/show_bug.cgi?id=18926
Description
The text was updated successfully, but these errors were encountered: