Skip to content
Snippets Groups Projects
  • David Malcolm's avatar
    99a909ab
    Add libdiagnostics (v4) · 99a909ab
    David Malcolm authored
    This patch adds a new libdiagnostics shared library available as
    part of the GCC build via --enable-libdiagnostics when
    configuring GCC.
    
    It combines the following patches from:
      https://gcc.gnu.org/pipermail/gcc-patches/2024-November/668632.html
    
    
        [PATCH 1/8] libdiagnostics v4: header
        [PATCH 2/8] libdiagnostics v4: implementation
        [PATCH 3/8] libdiagnostics: add API docs
        [PATCH 4/8] libdiagnostics v4: add C++ wrapper API
        [PATCH 6/8] libdiagnostics v4: test suite
    
    ChangeLog:
    	* configure.ac (--enable-libdiagnostics): New.
    	* configure: Regenerate.
    
    gcc/ChangeLog:
    	* configure.ac (check_languages): Add check-libdiagnostics.
    	(--enable-libdiagnostics): New.
    	* configure: Regenerate.
    	* Makefile.in (enable_libdiagnostics): New.
    	(lang_checks): If libdiagnostics is enabled, add
    	check-libdiagnostics.
    	(ALL_HOST_OBJS): If libdiagnostics is enabled, add
    	$(libdiagnostics_OBJS).
    	(start.encap): Add LIBDIAGNOSTICS.
    	(libdiagnostics_OBJS): New.
    	(LIBDIAGNOSTICS_VERSION_NUM): New, adapted from code in
    	jit/Make-lang.in.
    	(LIBDIAGNOSTICS_MINOR_NUM): Likewise.
    	(LIBDIAGNOSTICS_RELEASE_NUM): Likewise.
    	(LIBDIAGNOSTICS_FILENAME): Likewise.
    	(LIBDIAGNOSTICS_IMPORT_LIB): Likewise.
    	(libdiagnostics): Likewise.
    	(LIBDIAGNOSTICS_AGE): Likewise.
    	(LIBDIAGNOSTICS_BASENAME): Likewise.
    	(LIBDIAGNOSTICS_SONAME): Likewise.
    	(LIBDIAGNOSTICS_LINKER_NAME): Likewise.
    	(LIBDIAGNOSTICS_COMMA): Likewise.
    	(LIBDIAGNOSTICS_VERSION_SCRIPT_OPTION): Likewise.
    	(LIBDIAGNOSTICS_SONAME_OPTION): Likewise.
    	(LIBDIAGNOSTICS_SONAME_SYMLINK): Likewise.
    	(LIBDIAGNOSTICS_LINKER_NAME_SYMLINK): Likewise.
    	(LIBDIAGNOSTICS_FILENAME): Likewise.
    	(libdiagnostics.serial): Likewise.
    	(LIBDIAGNOSTICS_EXTRA_OPTS): Likewise.
    	(install): If libdiagnostics is enabled, add
    	install-libdiagnostics.
    	(libdiagnostics.install-headers): New.
    	(libdiagnostics.install-common): New, adapted from code in
    	jit/Make-lang.in.
    	(install-libdiagnostics): New.
    	* diagnostic-format-text.h
    	(diagnostic_text_output_format::get_location_text): Make public.
    	* doc/install.texi (--enable-libdiagnostics): New.
    	* doc/libdiagnostics/Makefile: New file.
    	* doc/libdiagnostics/conf.py: New file.
    	* doc/libdiagnostics/index.rst: New file.
    	* doc/libdiagnostics/make.bat: New file.
    	* doc/libdiagnostics/topics/diagnostic-manager.rst: New file.
    	* doc/libdiagnostics/topics/diagnostics.rst: New file.
    	* doc/libdiagnostics/topics/execution-paths.rst: New file.
    	* doc/libdiagnostics/topics/fix-it-hints.rst: New file.
    	* doc/libdiagnostics/topics/index.rst: New file.
    	* doc/libdiagnostics/topics/logical-locations.rst: New file.
    	* doc/libdiagnostics/topics/message-formatting.rst: New file.
    	* doc/libdiagnostics/topics/metadata.rst: New file.
    	* doc/libdiagnostics/topics/physical-locations.rst: New file.
    	* doc/libdiagnostics/topics/retrofitting.rst: New file.
    	* doc/libdiagnostics/topics/sarif.rst: New file.
    	* doc/libdiagnostics/topics/text-output.rst: New file.
    	* doc/libdiagnostics/topics/ux.rst: New file.
    	* doc/libdiagnostics/tutorial/01-hello-world.rst: New file.
    	* doc/libdiagnostics/tutorial/02-physical-locations.rst: New file.
    	* doc/libdiagnostics/tutorial/03-logical-locations.rst: New file.
    	* doc/libdiagnostics/tutorial/04-notes.rst: New file.
    	* doc/libdiagnostics/tutorial/05-warnings.rst: New file.
    	* doc/libdiagnostics/tutorial/06-fix-it-hints.rst: New file.
    	* doc/libdiagnostics/tutorial/07-execution-paths.rst: New file.
    	* doc/libdiagnostics/tutorial/index.rst: New file.
    	* libdiagnostics++.h: New file.
    	* libdiagnostics.cc: New file.
    	* libdiagnostics.h: New file.
    	* libdiagnostics.map: New file.
    
    gcc/testsuite/ChangeLog:
    	* libdiagnostics.dg/libdiagnostics.exp: New, adapted from jit.exp.
    	* libdiagnostics.dg/sarif.py: New.
    	* libdiagnostics.dg/test-dump.c: New test.
    	* libdiagnostics.dg/test-error-c.py: New test.
    	* libdiagnostics.dg/test-error-with-note-c.py: New test.
    	* libdiagnostics.dg/test-error-with-note.c: New test.
    	* libdiagnostics.dg/test-error-with-note.cc: New test.
    	* libdiagnostics.dg/test-error.c: New test.
    	* libdiagnostics.dg/test-error.cc: New test.
    	* libdiagnostics.dg/test-example-1.c: New test.
    	* libdiagnostics.dg/test-fix-it-hint-c.py: New test.
    	* libdiagnostics.dg/test-fix-it-hint.c: New test.
    	* libdiagnostics.dg/test-fix-it-hint.cc: New test.
    	* libdiagnostics.dg/test-helpers++.h: New test.
    	* libdiagnostics.dg/test-helpers.h: New test.
    	* libdiagnostics.dg/test-labelled-ranges.c: New test.
    	* libdiagnostics.dg/test-labelled-ranges.cc: New test.
    	* libdiagnostics.dg/test-labelled-ranges.py: New test.
    	* libdiagnostics.dg/test-logical-location-c.py: New test.
    	* libdiagnostics.dg/test-logical-location.c: New test.
    	* libdiagnostics.dg/test-metadata-c.py: New test.
    	* libdiagnostics.dg/test-metadata.c: New test.
    	* libdiagnostics.dg/test-multiple-lines-c.py: New test.
    	* libdiagnostics.dg/test-multiple-lines.c: New test.
    	* libdiagnostics.dg/test-no-column-c.py: New test.
    	* libdiagnostics.dg/test-no-column.c: New test.
    	* libdiagnostics.dg/test-no-diagnostics-c.py: New test.
    	* libdiagnostics.dg/test-no-diagnostics.c: New test.
    	* libdiagnostics.dg/test-note-with-fix-it-hint-c.py: New test.
    	* libdiagnostics.dg/test-note-with-fix-it-hint.c: New test.
    	* libdiagnostics.dg/test-text-sink-options.c: New test.
    	* libdiagnostics.dg/test-warning-c.py: New test.
    	* libdiagnostics.dg/test-warning-with-path-c.py: New test.
    	* libdiagnostics.dg/test-warning-with-path.c: New test.
    	* libdiagnostics.dg/test-warning.c: New test.
    	* libdiagnostics.dg/test-write-sarif-to-file-c.py: New test.
    	* libdiagnostics.dg/test-write-sarif-to-file.c: New test.
    	* libdiagnostics.dg/test-write-text-to-file.c: New test.
    
    Signed-off-by: default avatarDavid Malcolm <dmalcolm@redhat.com>
    99a909ab
    History
    Add libdiagnostics (v4)
    David Malcolm authored
    This patch adds a new libdiagnostics shared library available as
    part of the GCC build via --enable-libdiagnostics when
    configuring GCC.
    
    It combines the following patches from:
      https://gcc.gnu.org/pipermail/gcc-patches/2024-November/668632.html
    
    
        [PATCH 1/8] libdiagnostics v4: header
        [PATCH 2/8] libdiagnostics v4: implementation
        [PATCH 3/8] libdiagnostics: add API docs
        [PATCH 4/8] libdiagnostics v4: add C++ wrapper API
        [PATCH 6/8] libdiagnostics v4: test suite
    
    ChangeLog:
    	* configure.ac (--enable-libdiagnostics): New.
    	* configure: Regenerate.
    
    gcc/ChangeLog:
    	* configure.ac (check_languages): Add check-libdiagnostics.
    	(--enable-libdiagnostics): New.
    	* configure: Regenerate.
    	* Makefile.in (enable_libdiagnostics): New.
    	(lang_checks): If libdiagnostics is enabled, add
    	check-libdiagnostics.
    	(ALL_HOST_OBJS): If libdiagnostics is enabled, add
    	$(libdiagnostics_OBJS).
    	(start.encap): Add LIBDIAGNOSTICS.
    	(libdiagnostics_OBJS): New.
    	(LIBDIAGNOSTICS_VERSION_NUM): New, adapted from code in
    	jit/Make-lang.in.
    	(LIBDIAGNOSTICS_MINOR_NUM): Likewise.
    	(LIBDIAGNOSTICS_RELEASE_NUM): Likewise.
    	(LIBDIAGNOSTICS_FILENAME): Likewise.
    	(LIBDIAGNOSTICS_IMPORT_LIB): Likewise.
    	(libdiagnostics): Likewise.
    	(LIBDIAGNOSTICS_AGE): Likewise.
    	(LIBDIAGNOSTICS_BASENAME): Likewise.
    	(LIBDIAGNOSTICS_SONAME): Likewise.
    	(LIBDIAGNOSTICS_LINKER_NAME): Likewise.
    	(LIBDIAGNOSTICS_COMMA): Likewise.
    	(LIBDIAGNOSTICS_VERSION_SCRIPT_OPTION): Likewise.
    	(LIBDIAGNOSTICS_SONAME_OPTION): Likewise.
    	(LIBDIAGNOSTICS_SONAME_SYMLINK): Likewise.
    	(LIBDIAGNOSTICS_LINKER_NAME_SYMLINK): Likewise.
    	(LIBDIAGNOSTICS_FILENAME): Likewise.
    	(libdiagnostics.serial): Likewise.
    	(LIBDIAGNOSTICS_EXTRA_OPTS): Likewise.
    	(install): If libdiagnostics is enabled, add
    	install-libdiagnostics.
    	(libdiagnostics.install-headers): New.
    	(libdiagnostics.install-common): New, adapted from code in
    	jit/Make-lang.in.
    	(install-libdiagnostics): New.
    	* diagnostic-format-text.h
    	(diagnostic_text_output_format::get_location_text): Make public.
    	* doc/install.texi (--enable-libdiagnostics): New.
    	* doc/libdiagnostics/Makefile: New file.
    	* doc/libdiagnostics/conf.py: New file.
    	* doc/libdiagnostics/index.rst: New file.
    	* doc/libdiagnostics/make.bat: New file.
    	* doc/libdiagnostics/topics/diagnostic-manager.rst: New file.
    	* doc/libdiagnostics/topics/diagnostics.rst: New file.
    	* doc/libdiagnostics/topics/execution-paths.rst: New file.
    	* doc/libdiagnostics/topics/fix-it-hints.rst: New file.
    	* doc/libdiagnostics/topics/index.rst: New file.
    	* doc/libdiagnostics/topics/logical-locations.rst: New file.
    	* doc/libdiagnostics/topics/message-formatting.rst: New file.
    	* doc/libdiagnostics/topics/metadata.rst: New file.
    	* doc/libdiagnostics/topics/physical-locations.rst: New file.
    	* doc/libdiagnostics/topics/retrofitting.rst: New file.
    	* doc/libdiagnostics/topics/sarif.rst: New file.
    	* doc/libdiagnostics/topics/text-output.rst: New file.
    	* doc/libdiagnostics/topics/ux.rst: New file.
    	* doc/libdiagnostics/tutorial/01-hello-world.rst: New file.
    	* doc/libdiagnostics/tutorial/02-physical-locations.rst: New file.
    	* doc/libdiagnostics/tutorial/03-logical-locations.rst: New file.
    	* doc/libdiagnostics/tutorial/04-notes.rst: New file.
    	* doc/libdiagnostics/tutorial/05-warnings.rst: New file.
    	* doc/libdiagnostics/tutorial/06-fix-it-hints.rst: New file.
    	* doc/libdiagnostics/tutorial/07-execution-paths.rst: New file.
    	* doc/libdiagnostics/tutorial/index.rst: New file.
    	* libdiagnostics++.h: New file.
    	* libdiagnostics.cc: New file.
    	* libdiagnostics.h: New file.
    	* libdiagnostics.map: New file.
    
    gcc/testsuite/ChangeLog:
    	* libdiagnostics.dg/libdiagnostics.exp: New, adapted from jit.exp.
    	* libdiagnostics.dg/sarif.py: New.
    	* libdiagnostics.dg/test-dump.c: New test.
    	* libdiagnostics.dg/test-error-c.py: New test.
    	* libdiagnostics.dg/test-error-with-note-c.py: New test.
    	* libdiagnostics.dg/test-error-with-note.c: New test.
    	* libdiagnostics.dg/test-error-with-note.cc: New test.
    	* libdiagnostics.dg/test-error.c: New test.
    	* libdiagnostics.dg/test-error.cc: New test.
    	* libdiagnostics.dg/test-example-1.c: New test.
    	* libdiagnostics.dg/test-fix-it-hint-c.py: New test.
    	* libdiagnostics.dg/test-fix-it-hint.c: New test.
    	* libdiagnostics.dg/test-fix-it-hint.cc: New test.
    	* libdiagnostics.dg/test-helpers++.h: New test.
    	* libdiagnostics.dg/test-helpers.h: New test.
    	* libdiagnostics.dg/test-labelled-ranges.c: New test.
    	* libdiagnostics.dg/test-labelled-ranges.cc: New test.
    	* libdiagnostics.dg/test-labelled-ranges.py: New test.
    	* libdiagnostics.dg/test-logical-location-c.py: New test.
    	* libdiagnostics.dg/test-logical-location.c: New test.
    	* libdiagnostics.dg/test-metadata-c.py: New test.
    	* libdiagnostics.dg/test-metadata.c: New test.
    	* libdiagnostics.dg/test-multiple-lines-c.py: New test.
    	* libdiagnostics.dg/test-multiple-lines.c: New test.
    	* libdiagnostics.dg/test-no-column-c.py: New test.
    	* libdiagnostics.dg/test-no-column.c: New test.
    	* libdiagnostics.dg/test-no-diagnostics-c.py: New test.
    	* libdiagnostics.dg/test-no-diagnostics.c: New test.
    	* libdiagnostics.dg/test-note-with-fix-it-hint-c.py: New test.
    	* libdiagnostics.dg/test-note-with-fix-it-hint.c: New test.
    	* libdiagnostics.dg/test-text-sink-options.c: New test.
    	* libdiagnostics.dg/test-warning-c.py: New test.
    	* libdiagnostics.dg/test-warning-with-path-c.py: New test.
    	* libdiagnostics.dg/test-warning-with-path.c: New test.
    	* libdiagnostics.dg/test-warning.c: New test.
    	* libdiagnostics.dg/test-write-sarif-to-file-c.py: New test.
    	* libdiagnostics.dg/test-write-sarif-to-file.c: New test.
    	* libdiagnostics.dg/test-write-text-to-file.c: New test.
    
    Signed-off-by: default avatarDavid Malcolm <dmalcolm@redhat.com>