The debug note for an unclaimed DRE highlights a usage of an unsafe pointer that is not supported by our analysis.
For a better understand of what the unsupported cases are, we add more information to the debug note---a string of ancestor AST nodes of the unclaimed DRE. For example, an unclaimed DRE p in an expression *(p++) will result in a string starting with DRE, UnaryOperator(++), Paren, UnaryOperator(*).
To find out the most common patterns of those unsupported use cases, we add a simple script to build a prefix tree over those strings and count each prefix. The script reads input line by line, assumes a line is a list of words separated by ,s, and builds a prefix tree over those lists.
Maybe just use something else as a separator, like ==> ? (Python .split() method will eat that happily.)