The DW_OP_fbreg opcode references an expression stored in the DW_AT_frame_base attribute of the function, so we need to pass that through to the expression printer, and build it in the unit test.
Script: -- : 'RUN: at line 7'; /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/bin/clang -cc1 -internal-isystem /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/lib/clang/11.0.0/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -verify /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/clang/test/Analysis/checker-plugins.c -load /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/./lib/SampleAnalyzerPlugin.so -analyzer-checker='example.MainCallChecker'
I don't think I'm in a good position to review most of this code. I've commented on a few things, but somebody else should do the rest.
clang-format the header include list. This is the wrong place for this line.
Is it possible to hit this assertion if you are using malformed DWARF?
clang-fomat needed on this new code.
I'm going to guess that this won't work in a non-ARM build of LLVM...
You probably just want to return if this creation fails.
uint32_t seems like an odd type for a number of things. I'd expect size_t.