paulirwin opened a new pull request, #1048:
URL: https://github.com/apache/lucenenet/pull/1048

   - [X] You've read the [Contributor 
Guide](https://github.com/apache/lucenenet/blob/main/CONTRIBUTING.md) and [Code 
of Conduct](https://www.apache.org/foundation/policies/conduct.html).
   - [X] You've included unit or integration tests for your change, where 
applicable.
   - [] You've included inline docs for your change, where applicable.
   - [X] There's an open issue for the PR that you are making. If you'd like to 
propose a change, please [open an 
issue](https://github.com/apache/lucenenet/issues/new/choose) to discuss the 
change or find an existing issue.
   
   Mask off 63 from shift operand to prevent overflow on x86
   
   Fixes #1034
   
   ## Description
   
   On x86 .NET Framework, the ANTLR/IL changes in #996 behave differently than 
other platforms. This seems to be due to x86 .NET Framework not masking off the 
operand correctly. Other platforms mask this off by 0x3f (63) since shifting by 
64 or more would overflow, so this basically wraps the shift instead of 
overflowing. x86 netfx for some reason does not do this correctly. This adds a 
mask that does no harm on other platforms, but ensures that all are operating 
the same way.
   
   Note that this inlines the CompileBinary logic and no longer uses that 
method because we want to only mask off the second operand, not the first.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@lucenenet.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to