Tags: paulhdk/llvm-project
Tags
DynDepChecker x86 PoC (#15) * WIP AddrDep: fix diagnostic warnings * AddrDep: formatting * AddrDep: rename variables in addAddrDep() * AddrDep: add PC sections with ADBs and ADEs for all dependencies There are two PC sections, one for ADBs and one for ADEs. Each entry holds the address of the instruction it was attached to as well as a hash of the dependency's string ID. The hash value connects entries in the two PC sections. * AddrDep: rename isADBBroken() -> wasADBPreserved() * AddrDep: if an element was inserted, make addBrokenEnding() return a pointer to it. Nullptr otherwise. * AddrDep: add infrastructure for delegating dependencies to DynDepChecker For now, this only happens for a hard-coded ID * AddrDep: delegate rr_addr_dep_begin_simple to DynDepChecker * AddrDep: remove llvm::Optional header * AddrDep: Fix handling of non-traversable functions The analysis falsely skipped non-traversable functions even if they had a PTR-level value running into them. Fix this s.t. only void intrinsics, receiving a PTE-level dep chain value through a function argument are marked as safe. In any other case where a PTE-level value runs into a non-traversable function, the dep chain must be thrown away in favour of avoiding false positives. This commit fixes bd4d17a * AddrDep: simplify (and fix) if-condition in handleCall() * build: enable x86 backend * nix: set $LD_LIBRARY_FLAGS * AddrDep: fix possibility of returning too early in visitReturnInst() * AddrDep: remove debug print * AddrDep: remove one '-' when reporting to make headers and footers fit on one 80-char line * ddd: introduce addPCSectionEntriesForDepOrdering() * ddd: modify condition for delegating to dynamic analysis (debug) * ddd-debug: remove requirement line + column requirement when delegating to ddd
PreviousNext