-
Notifications
You must be signed in to change notification settings - Fork 274
Add workaround for issue described in #6168. #6340
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Hi @SaswatPadhi, would it be possible to have a look at this PR? It works-around the issue described in #6168 using Martin's suggestion. However, I couldn't get it to work without introducing a call to Besides, I'm not sure if that addition is changing the semantics of your contract code. It seems that in 9cdca48#diff-1ff6abca57de19a68456666ed5c25ce09fcaae20fdc9c2b109cb60cb311c183aL1208 the call to |
a15b307
to
7aa6f1b
Compare
Thanks for implementing the workaround, @NlightNFotis! We separated the function contract flags and loop contracts flags recently, so So you could replace the |
This fixes the infinite unwinding by adding calls to `do_indirect_call_and_rtti_removal()` before the contracts code invocation in `goto-instrument/`.
This also demonstrates the issue being fixed.
7aa6f1b
to
de9e891
Compare
Codecov Report
@@ Coverage Diff @@
## develop #6340 +/- ##
========================================
Coverage 75.89% 75.90%
========================================
Files 1515 1515
Lines 163971 163990 +19
========================================
+ Hits 124452 124469 +17
- Misses 39519 39521 +2
Continue to review full report at Codecov.
|
Thanks @SaswatPadhi, the latest suggestions have now been implemented, and I moved the test to the This patch should now fix the issue you are facing in #6168 if you call |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome! Thank you so much, @NlightNFotis.
Looks like that resolved all of the CI errors too.
This fixes the infinite unwinding by adding calls to
do_indirect_call_and_rtti_removal()
before the contracts code invocation in
goto-instrument/
.This is not yet finished, as it will need a test-case attached, but this is pushed so that
it can garner some initial comments regarding the approach.