Twin-Finder: Integrated Reasoning Engine for Pointer-related Code Clone
  Detection
  Detecting code clones is crucial in various software engineering tasks. In
particular, code clone detection can have significant uses in the context of
analyzing and fixing bugs in large scale applications. However, prior works,
such as machine learning-based clone detection, may cause a considerable amount
of false positives. In this paper, we propose Twin-Finder, a novel, closed-loop
approach for pointer-related code clone detection that integrates machine
learning and symbolic execution techniques to achieve precision. Twin-Finder
introduces a clone verification mechanism to formally verify if two clone
samples are indeed clones and a feedback loop to automatically generated formal
rules to tune machine learning algorithm and further reduce the false
positives. Our experimental results show that Twin-Finder can swiftly identify
up 9X more code clones comparing to a tree-based clone detector, Deckard and
remove an average 91.69% false positives.
