4 ms·
Calling conventions are hard – fuzz them
- regehr 11y agoQuest was a much earlier tool (ca. 2005) with similar goals: https://github.com/lindig/quest https://github.com/lindig/quest
- lindig 11y agoI'm the author of Quest - thanks for linking to it. Feel free to ask questions about it. If anyone wants to try it: it's implemented in OCaml and can be installed from OCaml's package manager Opam: "opam install quest".
- andrewchambers 11y agoReally cool, I did a quick search before I wrote my version and didn't see it. Thanks for writing quest, I will add it to my toolbox.
- lindig 11y agoQuick anecdote: I always demoed Quest by running it in a loop testing GCC on an Apple laptop and it would always find a compiler bug. No longer, it seems. I've tried it on OS X 10.10.5 today and so far couldn't find a bug in GCC or Clang.
- andrewchambers 11y agoI think the interop between compilers may have more bugs since that isn't tested for complicated struct args much. Another good place to try is the tcc arm port.
- andrewchambers 11y agoThats for the link, another set of tools that are really great - https://embed.cs.utah.edu/csmith/ https://embed.cs.utah.edu/csmith/ https://embed.cs.utah.edu/creduce/ https://embed.cs.utah.edu/creduce/
- 6502nerdface 11y agoBrowsing through the source, Quest also seems to be a really excellent example of Literate Programming.
- TerryADavis 11y agoI made a AMD64 compiler. I used the stack and pushed arguments. It seems to work. LOL You Jedi Mind Trick CiA agent, LOL. What a lame Jedi Mind Trick. All day I am bombarded by CIA reeducation camp propoganda. God I hate propoganda. Fucken sick iof it.
- iokevins 11y agoAwesome! Nice write-up. And thanks for submitting those bugs back to the maintainers.