Comments (5)
Nevermind, I think I see what happened. in the original version the UF returned a true value for isdigit() but 98 isn't a digit, and things went badly after that.
from alive2.
found a few more examples of this pattern, with abs() and labs()
I propose we work around these problems in the obvious, clunky way: by teaching alive about the semantics of these functions. let me know if this seems ok, Nuno.
from alive2.
This is LLVM's SimplifyLibCalls kicking in. Looking at the sheer size of the file, it seems almost impossible to catch up.
Either we can source the spec from somewhere and convert it automatically, then we would end up mostly copying that file, adding little value. I don't know if there are C libs specs out there, but there might be (Deepspec folks?).
A solution might be to simply disable SimplifyLibCalls by tagging everything with the nobuiltin
attribute. It's unfortunate, but it seems to be the only realistic approach ATM.
Yet another approach would be to support the top-10 most common functions and only tag the remaining with nobuiltin
.
What do you think?
from alive2.
I'll try adding support for a few of these that come up most often, and see how it goes. If this ends up being a stupid approach we can rip out the code and try something different.
from alive2.
The framework to recognize known functions is in: 40333f2
Only 1 function is recognized right now. But it won't generate false-positives like this bug; will simply skip verification.
Now we "just" need to write the spec for the other known functions..
from alive2.
Related Issues (20)
- confusing CEX HOT 1
- make undef inputs default to off
- Incorrect bit layout for vectors of overaligned elements
- optimize indirect fn calls
- possible false alarm HOT 3
- load widening not working? HOT 1
- False positive when devirtualizing call with memory attributes
- unexpected memcmp() behavior HOT 3
- Inconsistent phi value after select based on undef value HOT 7
- Source and Target Example Values Diverge Before Source Code Does HOT 3
- unexpected result when tgt is asm
- Implicit conversion and static analysis warnings HOT 1
- arm-tv bug that won't repro in alive-tv HOT 2
- issue with returned arguments in asm memory mode HOT 4
- issue with aligned pointers
- Source function always being UB warning may be missing HOT 3
- undesirable poison in return value HOT 1
- target-side padding for non-byte-sized loads/stores HOT 1
- missed alarm? HOT 2
- `--print-options` and `--print-all-options` donβt. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from alive2.