LLD terminates with errors when it detects overflows in the
finalizeAddressDependentContent calculation. Although, sometimes, those errors
are not really errors, but an intermediate result of an ongoing address
calculation. If we continue the fixed-point algorithm we can converge to the
correct result.
This patch
- Removes the verification inside the fixed point algorithm.
- Calls checkMemoryRegions at the end.
boolean values threaded through the code can make the code difficult to understand when looking at the callsite. True or false implies some change in behaviour but not what it is.
If this has to be threaded through I suggest using an enum with a descriptive name.