This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gcc-wwwdocs".
The branch, master has been updated
via df16b9b3eab72d33c37937432954a284412b44fb (commit)
from a3a0a760f5d03374eea88cddde73c1299174a3ed (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit df16b9b3eab72d33c37937432954a284412b44fb
Author: David Malcolm <[email protected]>
Date: Fri Mar 27 15:40:41 2026 -0400
Document my gcc 16 changes
diff --git a/htdocs/gcc-16/changes.html b/htdocs/gcc-16/changes.html
index c56f3b8b..65462545 100644
--- a/htdocs/gcc-16/changes.html
+++ b/htdocs/gcc-16/changes.html
@@ -36,6 +36,12 @@ a work-in-progress.</p>
predefines <code>_REENTRANT</code> on Solaris.
See <a href="porting_to.html#solaris">the porting notes</a> for more
information.</li>
+ <li>The so-called "<code>json</code>" format for
+ <a
href="https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format"><code>-fdiagnostics-format=</code></a>
+ has been removed in this release.
+ Users seeking machine-readable diagnostics from GCC should use
+ <a href="https://gcc.gnu.org/wiki/SARIF">SARIF</a>.
+ </li>
</ul>
@@ -265,6 +271,21 @@ for general information.</p>
of diagnostic text (<a
href="https://gcc.gnu.org/PR102613">PR102613</a>)</li>
</ul>
</li>
+ <li>Various C++ error messages (such as for problems involving templates)
+ now have a hierarchical structure. This nesting of messages is presented
+ using indentation and bullet points. The old behavior can be restored via
+ <a
href="https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fno-diagnostics-show-nesting"><code>-fno-diagnostics-show-nesting</code></a>
+ or
+ <a
href="https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-plain-output"><code>-fdiagnostics-plain-output</code></a>.
+ <!-- commit d3fe5a560f0bcca8e11ec0f9bb916f59615f51d8
+ diagnostics: enable nested diagnostics by default [PR116253] -->
+ <!-- commit 41f071a64ff7027a98e6b6a7e3641156e3be70e0
+ c++: improve nesting in print_z_candidate [PR121966] -->
+ <!-- commit 9d27750d153dd4147eebe6b30d3e18f7cb3d7384
+ c++: use nesting and counts in print_candidates -->
+ <!-- commit b76d9f7c1f2e14a576e2e548b0d454a1f16c7fde
+ c++: UX improvements for close matches in print_candidates -->
+ </li>
</ul>
<h4 id="libstdcxx">Runtime Library (libstdc++)</h4>
@@ -632,7 +653,249 @@ struct Affected : E
<!-- <h2>Documentation improvements</h2> -->
<!-- .................................................................. -->
-<!-- <h2 id="plugins">Improvements for plugin authors</h2> -->
+<h2 id="diagnostics">Improvements to GCC Diagnostics</h2>
+<ul>
+ <li>GCC can now output diagnostics in HTML form via
+ <a
href="https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-add-output_003dexperimental-html"><code>-fdiagnostics-add-output=experimental-html</code></a>
+ </li>
+
+ <li>GCC's SARIF output now respects the
+ <a
href="https://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html#index-dumpdir">dump
directory</a>.
+ For example, given
+ <code><pre>
+ gcc \
+ -o build-dir/foo.o \
+ -fdiagnostics-add-output=sarif
+ foo.c
+ </pre></code>
+ GCC 15 would write the SARIF to <code>foo.c.sarif</code>, whereas
+ GCC 16 now writes it to <code>build-dir/foo.c.sarif</code>.
+ <!-- commit 6fe28020cae53e3703921aedb9f267115a5262d3
+ diagnostics: respect dumpdir when outputting SARIF and HTML file
[PR110522] -->
+ </li>
+
+
+ <li>GCC's SARIF output now captures the nesting of logical locations.
+ <!-- commit f25e178b8c2cc868168b0a29ab03260fbefa4ff7
+ sarif output: capture nesting of logical locations [PR116176] -->
+ </li>
+
+ <li>In GCC's SARIF output,
+ <code>fix</code> objects now contain
+ <code>description</code> properties in many cases.
+ <!-- commit 0d5af6a757051708d2dfa510b2ad84f083d7eddc
+ sarif output: add descriptions to fix-it hints (§3.55.2) [PR121986]
-->
+ </li>
+
+ <li>GCC's SARIF output has gained 5 new values for the
+ <a
href="https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141791009">§3.38.8
<code>kinds</code> property of <code>threadFlowLocation</code></a>,
+ for expressing non-standard control flow:
+ <ul>
+ <li><code>throw</code> for throwing an exception</li>
+ <li><code>catch</code> for catching an exception</li>
+ <li><code>unwind</code> for unwinding stack frame(s) during
+ exception-handling</li>
+ <li><code>setjmp</code> for calls to setjmp</li>
+ <li><code>longjmp</code> for calls to longjmp that rewind the
+ program counter/stack to the location of a previous setjmp call</li>
+ </ul>
+ <!-- commit 0a2c4b6dd2019d144df49227fce950e10ae62b09
+ analyzer: add event kinds for special control flow [PR122544] -->
+ </li>
+
+ <li>GCC diagnostics can now have directed graphs associated with them, and
+ can also report "global" directed graphs. Graphs are ignored by text
sinks,
+ but are captured by SARIF sinks, and the "experimental-html" renders any
+ such graphs in SVG-based form using dot. For example, setting
+ <code>cfgs=yes</code> on a SARIF or HTML diagnostic sink will enable
+ capturing GCC's intermediate representation of every function at every
+ optimization pass.</li>
+
+ <li>GCC diagnostics can now refer to logical locations inside XML and JSON
+ files (such as via libgdiagnostics). The <code>sarif-replay</code> tool
+ now uses this to provide JSON pointers when it reports on issues in its
+ SARIF input.</li>
+
+ <li>If
+ <a
href="https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html#index-GCC_005fDIAGNOSTICS_005fLOG"><code>GCC_DIAGNOSTICS_LOG</code></a>
+ is set in the environment, GCC's diagnostic subsystem will emit a
+ text log to stderr (or a named file) to track what it's doing and the
+ decisions it's making (e.g. exactly when and why a diagnostic is being
+ rejected).</li>
+
+ <li>If
+ <a
href=https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html#index-EXPERIMENTAL_005fSARIF_005fSOCKET><code>EXPERIMENTAL_SARIF_SOCKET</code></a>
+ is set in the environment, GCC will attempt to connect to that socket on
+ startup and send JSON-RPC notifications to it for every diagnostic emitted.
+ <!-- commit 8a155c170b443e332b3db4922f0f0d588a17604f
+ diagnostics: add experimental SARIF JSON-RPC notifications for IDEs
[PR115970] -->
+ </li>
+</ul>
+
+<!-- .................................................................. -->
+<h2 id="plugins">Improvements for plugin authors</h2>
+<ul>
+ <li>GCC has gained a "publish/subscribe" framework, allowing for
+ loosely-coupled senders and receivers, with strongly-typed messages
+ passing between them. In this release the only topics for plugins
+ to subscribe to are:
+ <ul>
+ <li>events relating to optimization passes starting/stopping on
particular
+ functions
+ <!-- commit 4a2e1c31159aab4bde1990589ccab0da2436dfad
+ Add publish/subscribe topics and channel: pass_events -->
+ </li>
+ <li>events relating to the static analyzer
+ <!-- commit f68343c2543ab65d75ef88bd920dfa209c7cbe20
+ analyzer: replace PLUGIN_ANALYZER_INIT with a pub/sub channel
+
+ commit d36257a190dbe94a284f774fbf5c003abf03fc33
+ analyzer: port translation_unit_callbacks to pub/sub
+
+ commit bc668cf6c94a2607f280fa2447095e5f7cb81c2e
+ analyzer: port pop_frame_callbacks to pub/sub
+ -->
+ </li>
+ </ul>
+ </li>
+
+ <li>GCC diagnostic sinks can now have <code>extension</code> objects
+ associated with them, with a <code>finalizer</code> hook. Plugins can
+ use this to capture additional information in SARIF output files.
+ <!-- commit 0558c6028e47eb623365c3865577f40f9d1fa27c
+ diagnostics: add class sink::extension -->
+ </li>
+
+ <li>GCC's diagnostic machinery has been substantially cleaned up in GCC 16.
+ This should not affect plugins that use just the
+ <code>diagnostic-core.h</code> header, but maintainers of plugins making
+ more sophisticated uses of diagnostics may need to refer to the
+ <a href="porting_to.html#plugins">porting guide</a>.
+ </li>
+
+</ul>
+
+<!-- .................................................................. -->
+<h2 id="analyzer">Improvements to Static Analyzer</h2>
+<ul>
+ <li>The analyzer is now usable on simple C++ examples, as it now handles
+ C++'s Named Return Value Optimization and has some initial support for
+ exceptions. However due to scaling issues it is not likely to be usable
+ on production C++ code in this release.
+ <!-- commit a1922f0252b3b09016df76bd5b10119206935e37
+ analyzer: handle NRVO and DECL_BY_REFERENCE [PR111536] -->
+ <!-- commit 7a39e0ca0652ff84a31efa3c7d4c7a78d9bb95ae
+ analyzer: initial implementation of exception handling [PR97111] -->
+ </li>
+ <li>With the added support for exception-handling, <code>-fanalyzer</code>
+ assumes that a call to an external function not marked with attribute
+ <code>nothrow</code> could throw an exception if <code>-fexceptions</code>
+ is enabled. GCC 16 adds a new option
+ <a
href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-fanalyzer-assume-nothrow"><code>-fanalyzer-assume-nothrow</code></a>,
+ for disabling this assumption. This is intended as a workaround for
+ projects where the exception-handling generates large numbers of new
+ warnings, such as C code where <code>-fexceptions</code> is used for
+ interoperability with C++ but where the C APIs in use are unlikely to
+ throw exceptions.
+ <!-- commit f1318516f07453e87814f6246acf567f684ac34f
+ analyzer: add option -fanalyzer-assume-nothrow [PR122623] -->
+ </li>
+ <li>The data structure used by <code>-fanalyzer</code> for representing
+ the user's code has been rewritten in a way that makes it easier to
+ understand and debug, and slightly improves locations used when reporting
+ diagnostics. This comes at the cost of increasing the memory usage of
+ the analyzer.
+ <!-- commit 0b786d961d4426db15b3f681f4e7c6fcaeb296c2
+ analyzer: reimplement supergraph to eliminate function_point and
stmt_finder -->
+ </li>
+ <li>The data structure used by <code>-fanalyzer</code> for simulating the
+ contents of memory in the user's program has been reimplemented. The new
+ implementation is faster and easier to maintain.
+ <!-- commit 310a70ef6db45d2fd574daa77b5128cd1f4edbce
+ analyzer: reimplement binding_map using a "spatial" representation -->
+ </li>
+ <li>The analyzer has started to make use of GCC's <code>value_range</code>
+ machinery, eliminating some false positives.
+ <!-- commit 498fb8a24516b10897dfbe08bb8f7574b2d28839
+ analyzer: use value_range and range_op in eval_condition [PR98447] -->
+ </li>
+</ul>
+
+<!-- .................................................................. -->
+<h2 id="libgdiagnostics">Improvements to libgdiagnostics</h2>
+<a href="https://gcc.gnu.org/wiki/libgdiagnostics">libgdiagnostics</a> has
gained 37 entrypoints:
+<ul>
+ <li>5 new entrypoints for working with logical locations
+ <ul>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/logical-locations.html#c.diagnostic_logical_location_get_kind"><code>diagnostic_logical_location_get_kind()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/logical-locations.html#c.diagnostic_logical_location_get_parent"
title="diagnostic_logical_location_get_parent"><code>diagnostic_logical_location_get_parent()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/logical-locations.html#c.diagnostic_logical_location_get_short_name"
title="diagnostic_logical_location_get_short_name"><code>diagnostic_logical_location_get_short_name()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/logical-locations.html#c.diagnostic_logical_location_get_fully_qualified_name"
title="diagnostic_logical_location_get_fully_qualified_name"><code>diagnostic_logical_location_get_fully_qualified_name()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/logical-locations.html#c.diagnostic_logical_location_get_decorated_name"
title="diagnostic_logical_location_get_decorated_name"><code>diagnostic_logical_location_get_decorated_name()</code></a></li>
+ </ul>
+ </li>
+ <li>2 new entrypoints for supporting command-line options and SARIF playback
+ <ul>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/diagnostic-manager.html#c.diagnostic_manager_add_sink_from_spec"
title="diagnostic_manager_add_sink_from_spec"><code>diagnostic_manager_add_sink_from_spec()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/diagnostic-manager.html#c.diagnostic_manager_set_analysis_target"
title="diagnostic_manager_set_analysis_target"><code>diagnostic_manager_set_analysis_target()</code></a></li>
+ </ul>
+ </li>
+ <li>12 new entrypoints for working with directed graphs:
+ <ul>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/graphs.html#c.diagnostic_manager_new_graph"
title="diagnostic_manager_new_graph"><code>diagnostic_manager_new_graph()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/graphs.html#c.diagnostic_manager_take_global_graph"
title="diagnostic_manager_take_global_graph"><code>diagnostic_manager_take_global_graph()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/graphs.html#c.diagnostic_take_graph"
title="diagnostic_take_graph"><code>diagnostic_take_graph()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/graphs.html#c.diagnostic_graph_release"
title="diagnostic_graph_release"><code>diagnostic_graph_release()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/graphs.html#c.diagnostic_graph_set_description"
title="diagnostic_graph_set_description"><code>diagnostic_graph_set_description()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/graphs.html#c.diagnostic_graph_add_node"
title="diagnostic_graph_add_node"><code>diagnostic_graph_add_node()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/graphs.html#c.diagnostic_graph_add_edge"
title="diagnostic_graph_add_edge"><code>diagnostic_graph_add_edge()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/graphs.html#c.diagnostic_graph_get_node_by_id"
title="diagnostic_graph_get_node_by_id"><code>diagnostic_graph_get_node_by_id()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/graphs.html#c.diagnostic_graph_get_edge_by_id"
title="diagnostic_graph_get_edge_by_id"><code>diagnostic_graph_get_edge_by_id()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/graphs.html#c.diagnostic_node_set_label"
title="diagnostic_node_set_label"><code>diagnostic_node_set_label()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/graphs.html#c.diagnostic_node_set_location"
title="diagnostic_node_set_location"><code>diagnostic_node_set_location()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/graphs.html#c.diagnostic_node_set_logical_location"
title="diagnostic_node_set_logical_location"><code>diagnostic_node_set_logical_location()</code></a></li>
+ </ul>
+ </li>
+ <li>17 new entrypoints for building up text for a diagnostic via a buffer:
+ <ul>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_new"
title="diagnostic_message_buffer_new"><code>diagnostic_message_buffer_new()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_release"
title="diagnostic_message_buffer_release"><code>diagnostic_message_buffer_release()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_append_str"
title="diagnostic_message_buffer_append_str"><code>diagnostic_message_buffer_append_str()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_append_text"
title="diagnostic_message_buffer_append_text"><code>diagnostic_message_buffer_append_text()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_append_byte"
title="diagnostic_message_buffer_append_byte"><code>diagnostic_message_buffer_append_byte()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_append_printf"
title="diagnostic_message_buffer_append_printf"><code>diagnostic_message_buffer_append_printf()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_append_event_id"
title="diagnostic_message_buffer_append_event_id"><code>diagnostic_message_buffer_append_event_id()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_begin_url"
title="diagnostic_message_buffer_begin_url"><code>diagnostic_message_buffer_begin_url()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_end_url"
title="diagnostic_message_buffer_end_url"><code>diagnostic_message_buffer_end_url()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_begin_quote"
title="diagnostic_message_buffer_begin_quote"><code>diagnostic_message_buffer_begin_quote()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_end_quote"
title="diagnostic_message_buffer_end_quote"><code>diagnostic_message_buffer_end_quote()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_begin_color"
title="diagnostic_message_buffer_begin_color"><code>diagnostic_message_buffer_begin_color()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_end_color"
title="diagnostic_message_buffer_end_color"><code>diagnostic_message_buffer_end_color()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/message-buffers.html#c.diagnostic_message_buffer_dump"
title="diagnostic_message_buffer_dump"><code>diagnostic_message_buffer_dump()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/diagnostics.html#c.diagnostic_finish_via_msg_buf"
title="diagnostic_finish_via_msg_buf"><code>diagnostic_finish_via_msg_buf()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/physical-locations.html#c.diagnostic_add_location_with_label_via_msg_buf"
title="diagnostic_add_location_with_label_via_msg_buf"><code>diagnostic_add_location_with_label_via_msg_buf()</code></a></li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/execution-paths.html#c.diagnostic_execution_path_add_event_via_msg_buf"
title="diagnostic_execution_path_add_event_via_msg_buf"><code>diagnostic_execution_path_add_event_via_msg_buf()</code></a></p></li>
+ </ul>
+ </li>
+ <li><a
href="https://gcc.gnu.org/onlinedocs/libgdiagnostics/topics/physical-locations.html#c.diagnostic_manager_set_debug_physical_locations"
title="diagnostic_manager_set_debug_physical_locations"><code>diagnostic_manager_set_debug_physical_locations()</code></a></li>
+ <!--
+2025-07-15: Added support for message buffers to libgdiagnostics
(LIBGDIAGNOSTICS_ABI_4)
+
+2025-07-11: Added support for directed graphs to libgdiagnostics and
sarif-replay (LIBGDIAGNOSTICS_ABI_3)
+
+2025-06-23: Added support for HTML output to libgdiagnostics, sarif-replay,
and dg-lint (LIBGDIAGNOSTICS_ABI_2)
+2025-05-06:
+
+ Added accessors for logical locations(LIBGDIAGNOSTICS_ABI_1)
+
+ SARIF output now captures nesting of logical locations (PR116176)
+
+ Added support for XML and JSON kinds of logical locations
+
+ sarif-replay now shows logical locations of errors within SARIF input
using JSON pointer (PR117988)
+ -->
+
+</ul>
<!-- .................................................................. -->
<h2>Other significant improvements</h2>
diff --git a/htdocs/gcc-16/porting_to.html b/htdocs/gcc-16/porting_to.html
index 6a6e047a..2ab0df6f 100644
--- a/htdocs/gcc-16/porting_to.html
+++ b/htdocs/gcc-16/porting_to.html
@@ -294,5 +294,188 @@ usual alignment without capping the result.
(And Good Riddance) to -mt -and -D_REENTRANT</a>.</li>
</ul>
+<h2 id="plugins">Changes affecting plugin authors</h2>
+
+<p>GCC's diagnostic machinery has been substantially cleaned up in GCC 16.
+ Most of the implementation has been moved to a new
+ <code>gcc/diagnostics/</code> subdirectory and <code>diagnostics::</code>
+ namespace, with many fields becoming <code>private</code>. This should
+ not affect plugins that use just the <code>diagnostic-core.h</code> API,
+ but plugins making more sophisticated uses of diagnostics may need
+ updating. The following tables list the types that have been renamed
+ in GCC 16 and the header files that have been moved.</p>
+
+<table>
+ <caption>Renamed types</caption>
+ <thead>
+ <tr>
+ <th scope="col">GCC 15 type</th>
+ <th scope="col">GCC 16 type</th>
+ <th scope="col">Notes</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>class diagnostic_buffer</code></td> <td><code>class
diagnostics::buffer</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_client_data_hooks</code></td>
<td><code>class diagnostics::client_data_hooks</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_client_plugin_info</code></td>
<td><code>class diagnostics::client_plugin_info</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_column_policy</code></td> <td><code>class
diagnostics::column_policy</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_context</code></td> <td><code>class
diagnostics::context</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>struct diagnostic_counters</code></td> <td><code>struct
diagnostics::counters</code></td> <td>New header:
<code>diagnostics/counters.h</code></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_diagram</code></td> <td><code>class
diagnostics::diagram</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_event</code></td> <td><code>class
diagnostics::paths::event</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_event_id_t</code></td> <td><code>class
diagnostics::paths::event_id_t</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>struct diagnostic_info</code></td> <td><code>struct
diagnostics::diagnostic_info</code></td> <td>Fields have gained <code>m_</code>
prefixes</td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_location_print_policy</code></td>
<td><code>class diagnostics::location_print_policy</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_metadata</code></td> <td><code>class
diagnostics::metadata</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_option_classifier</code></td>
<td><code>class diagnostics::option_classifier</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>struct diagnostic_option_id</code></td> <td><code>struct
diagnostics::option_id</code></td> <td>New header:
<code>diagnostics/option-id.h</code></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_option_manager</code></td> <td><code>class
diagnostics::option_manager</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_output_file</code></td> <td><code>class
diagnostics::output_file</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_output_format</code></td> <td><code>class
diagnostics::sink</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_per_format_buffer</code></td>
<td><code>class diagnostics::per_sink_buffer</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>struct diagnostic_source_printing_options</code></td>
<td><code>struct diagnostics::source_printing_options</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_source_print_policy</code></td>
<td><code>class diagnostics::source_print_policy</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>enum diagnostic_t</code></td> <td><code>enum class
diagnostics::kind</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_text_output_format</code></td>
<td><code>class diagnostics::text_sink</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_thread</code></td> <td><code>class
diagnostics::paths::thread</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>typedef diagnostic_thread_id_t</code></td> <td><code>typedef
diagnostics::paths::thread_id_t</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_path</code></td> <td><code>class
diagnostics::paths::path</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class edit_context</code></td> <td><code>class
diagnostics::changes::change_set</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class logical_location</code></td> <td><code>class
diagnostics::logical_locations::key</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>enum logical_location_kind</code></td> <td><code>enum
diagnostics::logical_locations::kind</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class logical_location_manager</code></td> <td><code>class
diagnostics::logical_locations::manager</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class sarif_output_format</code></td> <td><code>class
diagnostics::sarif_sink</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class diagnostic_sarif_format_buffer</code></td>
<td><code>class diagnostics::sarif_sink_buffer</code></td> <td></td>
+ </tr>
+ <tr>
+ <td><code>class option_manager</code></td> <td><code>class
diagnostics::option_id_manager</code></td> <td>New header:
<code>diagnostics/option-id-manager.h</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<table>
+ <caption>Header file changes</caption>
+ <thead>
+ <tr>
+ <th scope="col">GCC 15 header</th>
+ <th scope="col">GCC 16 header</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>diagnostic-buffer.h</code></td>
<td><code>diagnostics/buffering.h</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic-client-data-hooks.h</code></td>
<td><code>diagnostics/client-data-hooks.h</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic-color.h</code></td>
<td><code>diagnostics/color.h</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic.def</code></td>
<td><code>diagnostics/kind.def</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic-diagram.h</code></td>
<td><code>diagnostics/diagram.h</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic-format-html.h</code></td>
<td><code>diagnostics/html-sink.h</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic-format-sarif.h</code></td>
<td><code>diagnostics/sarif-sink.h</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic-format-text.h</code></td>
<td><code>diagnostics/text-sink.h</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic-label-effects.h</code></td>
<td><code>diagnostics/source-printing-effects.h</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic-macro-unwinding.h</code></td>
<td><code>diagnostics/macro-unwinding.h</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic-metadata.h</code></td>
<td><code>diagnostics/metadata.h</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic-output-file.h</code></td>
<td><code>diagnostics/output-file.h</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic-path.h</code></td>
<td><code>diagnostics/paths.h</code></td>
+ </tr>
+ <tr>
+ <td><code>diagnostic-url.h</code></td>
<td><code>diagnostics/url.h</code></td>
+ </tr>
+ <tr>
+ <td><code>edit-context.h</code></td>
<td><code>diagnostics/changes.h</code></td>
+ </tr>
+ <tr>
+ <td>File cache types of <code>input.h</code></td>
<td><code>diagnostics/file-cache.h</code></td>
+ </tr>
+ <tr>
+ <td><code>logical-locations.h</code></td>
<td><code>diagnostics/logical-locations.h</code></td>
+ </tr>
+ </tbody>
+</table>
+
</body>
</html>
-----------------------------------------------------------------------
Summary of changes:
htdocs/gcc-16/changes.html | 265 +++++++++++++++++++++++++++++++++++++++++-
htdocs/gcc-16/porting_to.html | 183 +++++++++++++++++++++++++++++
2 files changed, 447 insertions(+), 1 deletion(-)
hooks/post-receive
--
gcc-wwwdocs