gnu/gcc/c3de32be053db1156e4e5fbc87143f93f5345e8d
analyzer: add concrete-ranges.h/cc
This patch introduces a new template class:
ana::concrete::range<ConcreteValueType>
for storing a unit-safe range of arbitrary-precision integer values,
such as:
- bits [0, 3)
- bytes [0, 1024)
- integers [5, 10) (unitless)
As in the previous patch, nothing uses this yet, but it is used in
my upcoming rewrite of the analyzer's state-tracking for ranges that
have concretely-known endpoints.
gcc/ChangeLog:
* Makefile.in (ANALYZER_OBJS): Add analyzer/concrete-ranges.o.
gcc/analyzer/ChangeLog:
* analyzer-selftests.cc (run_analyzer_selftests): Call
analyzer_concrete_ranges_cc_tests.
* analyzer-selftests.h (analyzer_concrete_ranges_cc_tests): New
decl.
* concrete-ranges.cc: New file, based in parts on material from
ranges.cc
* concrete-ranges.h: New file.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
5 files changed