Skip to content

Questions

Jordan Cantrell edited this page Nov 19, 2018 · 2 revisions
  • Should this project be a plugin or bolted into the compiler itself?
    • If plugin: does Clang’s upstream have a place for “standard plugins”? Or is a “standard plugin” just already included in the compiler?
    • Compiler-upstream: where should we begin looking to add this feature?
  • Can we manipulate object layouts in Clang’s AST?
  • What kinds of object layout “gotchas” should we try to keep an eye out for?
  • How do we debug this reliably?
    • Clang has tools for dumping the AST of a translation unit.
  • How do we test this?
    • Plugin: we could probably choose our own test framework.
    • Compiler-upstream: what test framework does the code base already use?
  • What kind of randomization techniques should we use?
  • How can we distribute seeds? Are these just included with the tests?
  • Do we need to reconcile the fact that Clang supports many languages (C, C++, Objective-C)? Does it matter?
    • Maybe not, if there’s a general abstraction for structs/classes across all of them (which I suspect is true for at least C and C++, I have no experience w/ Obj C)
      • The RecordDecl type in the AST encompasses these things
  • Xcode does not have all headers for LLVM to hack with it
    • Search xcode in this doc
  • Doxygen