diagnostics: add diagnostics::markup

This patch adds a new tree-like representation for use when building
diagnostic messages.

The version in this patch is rather simplistic, and is purely to support
various awkward cases in upcoming patches I have that rework the insides
of the analyzer.  I hope to eventually extend the markup support to
allow capturing richer markup in diagnostic sink output (e.g. HTML
output, markdown in SARIF, etc), but I'm deliberately keeping the scope
of this patch quite narrow.

gcc/ChangeLog:
	* Makefile.in (OBJS-libcommon): Add diagnostics/markup.o.
	* diagnostics/diagnostics-selftests.cc
	(diagnostics::selftest::run_diagnostics_selftests): Call
	markup_cc_tests.
	* diagnostics/diagnostics-selftests.h
	(diagnostics::selftest::markup_cc_tests): New decl.
	* diagnostics/markup.cc: New file.
	* diagnostics/markup.h: New file.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
5 files changed