r332448 - [diagtool] Add diagtool to install target.

Jonas Devlieghere via cfe-commits cfe-commits at lists.llvm.org
Wed May 16 03:23:25 PDT 2018


Author: jdevlieghere
Date: Wed May 16 03:23:25 2018
New Revision: 332448

URL: http://llvm.org/viewvc/llvm-project?rev=332448&view=rev
Log:
[diagtool] Add diagtool to install target.

Although not very well known, diagtool is an incredibly convenient
utility for dealing with diagnostics.
Particularly useful are the "tree" and "show-enabled" commands:

 - The former prints the hierarchy of diagnostic (warning) flags and
   which of them are enabled by default.
 - The latter can be used to replace an invocation to clang and will
   print which diagnostics are disabled, warnings or errors.
   For instance: `diagtool show-enabled -Wall -Werror /tmp/test.c` will
   print that -Wunused-variable (warn_unused_variable) will be treated as
   an error.

This patch adds them to the install target so it gets shipped with the
LLVM release. It also adds a very basic man page and mentions this
change in the release notes.

Differential revision: https://reviews.llvm.org/D46694

Added:
    cfe/trunk/docs/CommandGuide/diagtool.rst
Modified:
    cfe/trunk/docs/CommandGuide/index.rst
    cfe/trunk/docs/ReleaseNotes.rst
    cfe/trunk/tools/diagtool/CMakeLists.txt

Added: cfe/trunk/docs/CommandGuide/diagtool.rst
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/CommandGuide/diagtool.rst?rev=332448&view=auto
==============================================================================
--- cfe/trunk/docs/CommandGuide/diagtool.rst (added)
+++ cfe/trunk/docs/CommandGuide/diagtool.rst Wed May 16 03:23:25 2018
@@ -0,0 +1,52 @@
+diagtool - clang diagnostics tool
+=================================
+
+SYNOPSIS
+--------
+
+:program:`diagtool` *command* [*args*]
+
+DESCRIPTION
+-----------
+
+:program:`diagtool` is a combination of four tool for dealing with diagnostics in :program:`clang`.
+
+SUBCOMMANDS
+-----------
+
+:program:`diagtool` is separated into several subcommands each tailored to a
+different purpose. A brief summary of each command follows, with more detail in
+the sections that follow.
+
+  * :ref:`find_diagnostic_id` - Print the id of the given diagnostic.
+  * :ref:`list_warnings` - List warnings and their corresponding flags.
+  * :ref:`show_enabled` - Show which warnings are enabled for a given command line.
+  * :ref:`tree` - Show warning flags in a tree view.
+
+.. _find_diagnostic_id:
+
+find-diagnostic-id
+~~~~~~~~~~~~~~~~~~
+
+:program:`diagtool` find-diagnostic-id *diagnostic-name*
+
+.. _list_warnings:
+
+list-warnings
+~~~~~~~~~~~~~
+
+:program:`diagtool` list-warnings
+
+.. _show_enabled:
+
+show-enabled
+~~~~~~~~~~~~
+
+:program:`diagtool` show-enabled [*options*] *filename ...*
+
+.. _tree:
+
+tree
+~~~~
+
+:program:`diagtool` tree [*diagnostic-group*]

Modified: cfe/trunk/docs/CommandGuide/index.rst
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/CommandGuide/index.rst?rev=332448&r1=332447&r2=332448&view=diff
==============================================================================
--- cfe/trunk/docs/CommandGuide/index.rst (original)
+++ cfe/trunk/docs/CommandGuide/index.rst Wed May 16 03:23:25 2018
@@ -15,3 +15,4 @@ Basic Commands
    :maxdepth: 1
 
    clang
+   diagtool

Modified: cfe/trunk/docs/ReleaseNotes.rst
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/ReleaseNotes.rst?rev=332448&r1=332447&r2=332448&view=diff
==============================================================================
--- cfe/trunk/docs/ReleaseNotes.rst (original)
+++ cfe/trunk/docs/ReleaseNotes.rst Wed May 16 03:23:25 2018
@@ -93,6 +93,11 @@ Non-comprehensive list of changes in thi
   behavior can be restored by setting ``-fclang-abi-compat`` to ``6`` or
   lower.
 
+- An existing tool named ``diagtool`` has been added to the release. As the
+  name suggests, it helps with dealing with diagnostics in ``clang``, such as
+  finding out the warning hierarchy, and which of them are enabled by default
+  or for a particular compiler invocation.
+
 - ...
 
 New Compiler Flags

Modified: cfe/trunk/tools/diagtool/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/diagtool/CMakeLists.txt?rev=332448&r1=332447&r2=332448&view=diff
==============================================================================
--- cfe/trunk/tools/diagtool/CMakeLists.txt (original)
+++ cfe/trunk/tools/diagtool/CMakeLists.txt Wed May 16 03:23:25 2018
@@ -17,3 +17,15 @@ target_link_libraries(diagtool
   clangBasic
   clangFrontend
   )
+
+if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+  install(TARGETS diagtool
+    COMPONENT diagtool
+    RUNTIME DESTINATION bin)
+
+  if (NOT CMAKE_CONFIGURATION_TYPES)
+    add_llvm_install_targets(install-diagtool
+      DEPENDS diagtool
+      COMPONENT diagtool)
+  endif()
+endif()




More information about the cfe-commits mailing list