Implement for fast DFA engine, value tracking and uninitialized memory preventing of reading.#22400
Conversation
|
Thanks for your pull request and interest in making D better, @rikkimax! We are looking forward to reviewing it, and you should be hearing from a maintainer soon.
Please see CONTRIBUTING.md for more information. If you have addressed all reviews or aren't sure how to proceed, don't hesitate to ping us with a simple comment. Bugzilla referencesYour PR doesn't reference any Bugzilla issue. If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog. Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub run digger -- build "master + dmd#22400" |
6efad3b to
4a22be6
Compare
6e06af9 to
cde8a54
Compare
| } | ||
|
|
||
| int v = *ret; // ideally would error, but not required | ||
| int v = *ret; // no error, cannot know state of ret |
There was a problem hiding this comment.
GDC disagrees. :-)
There was a problem hiding this comment.
I don't do truthiness interprocedurally, it's intentional.
There was a problem hiding this comment.
I'm pretty sure it's nothing to do with detecting truthiness, and more to do with representing variables as PHI nodes for each diverging path taken to reach the current point in code.
There was a problem hiding this comment.
I'm pretty sure it's nothing to do with detecting truthiness, and more to do with representing variables as PHI nodes for each diverging path taken to reach the current point in code.
https://compiler-explorer.com/z/PqaYojh85
It is modelling truthiness.
cde8a54 to
3e5de5d
Compare
|
I'm looking into the following error: A quick look over at decode, shows that it does indeed cause a bounds check error if that function were ever be called. This is another example of where There are a few more examples of this, relating to decode(front/back), and they appear to all be doing the same thing.
|
|
I don't know why Given that it is a runtime error, not a CT one, I'm inclined that it isn't related. EDIT: likely is something to do with me, other PR's are green for phobos. Confirmed its me, |
|
boilerplate is a known error, as this is industry code I'm waiting on feep to deal with it. That covers serialized. Ocean is known good error. Okay I'm calling buildkite doing what it is supposed to. |
97e58d5 to
a2e9bee
Compare
|
Lists of tests in testsuite where error is correct:
I also want to fix the failures in phobos for decode somehow. |
f946435 to
94defff
Compare
|
Functionally, it is now complete. I need to write up a changelog and do an audit, but otherwise its done. |
debcdf7 to
8a05725
Compare
|
Okay, I'm now happy, but I'll leave it a few days to see if I get annoyed with anything else. |
|
Do ping, when this is good to go. |
8a05725 to
796672e
Compare
796672e to
06fc770
Compare
06fc770 to
582f163
Compare
thewilsonator
left a comment
There was a problem hiding this comment.
Apart from one suspect change looks OK to me.
…y preventing of reading
582f163 to
896e5f3
Compare
This PR is to see if there are any failures in the CI beyond what I already know.EDIT: I've had to change if statements location for assignments, so that it reflects the condition, not the if statement.