mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-02-26 00:23:14 +01:00
Don't set TypePointer::isunsigned to true in the frontend.
The previous solution was problematic because the change was language- visble via the isUnsigned trait. Now, pointers are simply explicitly checked for in the relevant places. (Note that there might be cases in the diff where a direct isunsigned() call would have been appropriate – I only checked for instances where the type clearly cannot be a pointer, but chose to go the safe route in replicating existing behavior otherwise). Fixes DMD testcase 'traits'.
This commit is contained in:
@@ -1317,7 +1317,7 @@ void ForeachRangeStatement::toIR(IRState* p)
|
||||
lower = DtoLoad(keyval);
|
||||
assert(lower->getType() == upper->getType());
|
||||
llvm::ICmpInst::Predicate cmpop;
|
||||
if (key->type->isunsigned())
|
||||
if (isLLVMUnsigned(key->type))
|
||||
{
|
||||
cmpop = (op == TOKforeach)
|
||||
? llvm::ICmpInst::ICMP_ULT
|
||||
|
||||
Reference in New Issue
Block a user