Commit Graph

1469 Commits

Author SHA1 Message Date
GCC Administrator
1f7e64d56b Daily bump. 2026-01-10 00:16:49 +00:00
Jakub Jelinek
e153237a3f Update Copyright for gen-evolution.awk and gen-cxxapi-file.py
On Fri, Jan 09, 2026 at 05:54:47PM +0000, Joseph Myers wrote:
> I think updates to gcc/config/loongarch/genopts/gen-evolution.awk's calls
> to copyright_header are needed as well.  At present, building for
> loongarch can result in files in the source tree being reverted to older
> copyright dates because the generation hasn't been updated (discovered via
> my glibc bot with GCC mainline stopping updating its GCC source tree
> because such modifications appeared in the sources).  Of course this also
> shows up missing entries in contrib/gcc_update for the three files
> generated by gen-evolution.awk.

gen-evolution.awk was explicitly blacklisted
and so was gen-cxxapi-file.py, both because update-copyright.py
matched Copyright line also within the printing code but it wasn't
matching the expected form.
Fixed by making sure the printing code doesn't match it by using
print "   Copy" "right (C) " ... in the awk case and
Copy{:s}right in the python case (with "" arg added).

2026-01-09  Jakub Jelinek  <jakub@redhat.com>

contrib/
	* update-copyright.py (GCCFilter): Don't filter out
	gen-evolution.awk and gen-cxxapi-file.py.
gcc/
	* config/loongarch/genopts/gen-evolution.awk: Update
	copyright year.
	(copyright_header): Separate parts of Copyright word
	with " " so that it doesn't get matched by update-copyright.py.
	(gen_full_header, gen_full_source, gen_full_def): Include
	2026 year in the ranges.
gcc/cp/
	* gen-cxxapi-file.py: Update copyright year.  Separate
	parts of Copyright word with {:s} so that it doesn't get matched
	by update-copyright.py.
2026-01-09 21:59:16 +01:00
Pietro Monteiro
17cc07b4d3 Containerfile for base forge actions
Build autoconf and automake and add autoregen.py from
https://sourceware.org/git/builder.git

Add forge action to build container images.

ChangeLog:

	* .forgejo/workflows/build-containers.yaml: New file.

contrib/ChangeLog:

	* ci-containers/README: New file.
	* ci-containers/autoregen/Containerfile: New file.
	* ci-containers/autoregen/autoregen.py: New file.
	* ci-containers/build-image.sh: New file.

Signed-off-by: Pietro Monteiro <pietro@sociotechnical.xyz>
2026-01-08 07:31:40 -05:00
GCC Administrator
e1380ea5b0 Daily bump. 2026-01-03 00:16:36 +00:00
Jakub Jelinek
254a858ae7 Update copyright years. 2026-01-02 09:56:11 +01:00
Jakub Jelinek
2dcca7aaf5 Tweak update-copyright.py script
When running update-copyright.py --this-year, I've encountered various
failures, this patch works around those.

2026-01-02  Jakub Jelinek  <jakub@redhat.com>

	* update-copyright.py (LibPhobosFilter): Ignore also
	__importc_builtins.di.
	(LibGRustFilter): New filter.
	(GCCCopyright): Add several external authors.
	(GCCCmdLine): Use LibGRustFilter for libgrust.  Add libga68
	directory, both to list of directories and default directories.
2026-01-02 09:55:05 +01:00
GCC Administrator
d53956a048 Daily bump. 2025-12-27 00:16:26 +00:00
Matthew Fortune
dc1d1a30fa [PATCH v2 1/1] Ensure _UNDER_TEST executables are target based
This fixes an issue where some G++ tests need to use a C compiler as
well as C++ to build an LTO test.

contrib/
	* test_installed: Use target to select default gcc/g++ etc.
	under test.

Signed-off-by: Matthew Fortune <matthew.fortune@imgtec.com>
Signed-off-by: Faraz Shahbazker <fshahbazker@wavecomp.com>
Signed-off-by: Aleksandar Rakic <aleksandar.rakic@htecgroup.com>
2025-12-26 16:54:48 -07:00
GCC Administrator
2f8283f79b Daily bump. 2025-12-16 00:16:36 +00:00
Joseph Myers
edf5b880b8 testsuite: Support plugin testing for installed compiler
Plugin tests are currently only enabled for build-tree testing.
Enable them for installed testing as well, using
-print-file-name=plugin/include to locate the installed headers in
that case.

Support is also added to contrib/test_installed for the associated
site.exp settings.  Installed testing also shows up that some plugin
tests are using text-art/*.h headers that aren't currently installed,
so add those to PLUGIN_HEADERS.

Bootstrapped with no regressions for x86_64-pc-linux-gnu, and also ran
plugin tests for an installed compiler with contrib/test_installed.

contrib/
	* test_installed (--enable-plugin, --with-plugincc=)
	(--with-plugincflags=, --with-gmpinc=): New options.

gcc/
	* Makefile.in (PLUGIN_HEADERS): Add $(srcdir)/text-art/*.h.
	(install-plugin): Preserve directory structure for text-art
	headers.

gcc/testsuite/
	* lib/plugin-support.exp (plugin-test-execute): Support installed
	testing.
	* g++.dg/plugin/plugin.exp, gcc.dg/plugin/plugin.exp,
	obj-c++.dg/plugin/plugin.exp, objc.dg/plugin/plugin.exp: Do not
	disable for installed testing.
2025-12-15 17:58:20 +00:00
GCC Administrator
bcbb536551 Daily bump. 2025-12-13 00:16:34 +00:00
mengqinggang
78a6cc3374 LoongArch: Introduce LoongArch32 target
Introduce LoongArch32 (LA32) ilp32d abi and LoongArch32 Reduced (LA32R) ilp32s abi.
Add march la32v1.0 and la32rv1.0.
Add mtune loongarch32 as a general tune.
Add la32 march and mtune to gcc/doc/invoke.texi.

contrib/ChangeLog:

	* config-list.mk: Add loongarch32-linux-gnu*.

gcc/ChangeLog:

	* config.gcc: Add target triple loongarch32-*-*-* and
	corresponding abi ilp32f, ilp32d and ilp32s.
	* config/loongarch/genopts/loongarch-strings: Add strings for
	loongarch32 and ilp32 abi variants.
	* config/loongarch/genopts/loongarch.opt.in: Add
	-march=la32v1.0/la32rv1.0 and -mabi=ilp32d/ilp32f/ilp32s.
	* config/loongarch/gnu-user.h: Add ilp32 abi variants to spec.
	* config/loongarch/linux.h: Add ABI_LIBDIR for ilp32 abi
	variants.
	* config/loongarch/loongarch-c.cc (loongarch_define_unconditional_macros):
	Add builtin definitions for loongarch32 target.
	* config/loongarch/loongarch-def.cc: Add loongarch32 and ilp32
	definitions.
	* config/loongarch/loongarch-def.h: Add loongarch32 and ilp32
	definitions.
	* config/loongarch/loongarch-driver.h: Add ilp32 abi variants to
	spec.
	* config/loongarch/loongarch-opts.cc: Handle ilp32 abi variants.
	* config/loongarch/loongarch-opts.h: Add loongarch32 case to
	macros.
	* config/loongarch/loongarch-str.h: Add loongarch32 and ilp32
	strings.
	* config/loongarch/loongarch.opt: Add -march=la32v1.0/la32rv1.0
	and -mabi=ilp32d/ilp32f/ilp32s.
	* config/loongarch/t-linux: Add ilp32 abi variants to multilib.
	* doc/invoke.texi: Add LA32 arch and tune.

libitm/ChangeLog:

	* config/loongarch/asm.h: Fix ilp32 detection.

Co-authored-by: Jiajie Chen <c@jia.je>
Reviewed-by: Xi Ruoyao <xry111@xry111.site>
Reviewed-by: Lulu Cheng <chenglulu@loongson.cn>
2025-12-12 15:56:46 +08:00
GCC Administrator
540b7b359d Daily bump. 2025-12-12 00:16:34 +00:00
Joseph Myers
311d2829db contrib: Use config.sub in test_installed
Correctly running GCC testsuites with an installed compiler requires
both the canonical and noncanonical versions of the target triplet:
the canonical one for where the testsuite matches on target triplets,
and the noncanonical one for various "transform" calls used to find
binutils programs.  Make test_installed use config.sub to determine
the canonical target from any value passed with --target= (and thus
make logic to locate the toplevel source directory from its own
location unconditional, as it's now used to locate config.sub).

	* test_installed: Use config.sub to determine canonical target.
2025-12-11 23:20:54 +00:00
GCC Administrator
8be2b77977 Daily bump. 2025-12-09 00:16:30 +00:00
Joseph Myers
a7b8c5faa6 contrib: Set more site.exp variables in test_installed
Add support in contrib/test_installed for more variables (via
associated command-line options to the script) that gcc/Makefile.in
can set:

* ALT_CC_UNDER_TEST, ALT_CXX_UNDER_TEST and COMPAT_OPTIONS are used in
  compat testing (against the same or a different compiler).

* The libiconv variable is used for testing iconv support for
  particular character sets, and defaults to -liconv if not set in
  site.exp, which is wrong on systems with iconv in libc; keep the
  default, but add an option to override this.

  Note that the dg-require-iconv testing is currently bogus in a cross
  environment, and this patch does nothing to address that.  The tests
  using dg-require-iconv actually care about character set support on
  the *host*, for character conversions carried out in the compiler,
  and the libiconv setting put in site.exp by gcc/Makefile.in is a
  *host* library setting.  But dg-require-iconv /
  check_iconv_available tests availability when compiling, linking and
  executing for the *target*.  If the host and target have close
  enough to the same OS, this may work by accident, but otherwise it
  will incorrectly enable / disable these tests based on target
  information (but using a libiconv setting designed for the host)
  when it should be based on host information.

	* test_installed (--with-alt-cc=, --with-alt-cxx=)
	(--with-compat-options=, --with-libiconv=): New options.
2025-12-08 17:02:22 +00:00
Jonathan Wakely
28f12e889c contrib: Skip libstdc++ files in check_GNU_style.py
The libstdc++ style is different from the rest of GCC, so do not apply
the checks to libstdc++ files in a patch.

contrib/ChangeLog:

	* check_GNU_style_lib.py (check_GNU_style_file): Do not check
	libstdc++ files.

Reviewed-by: Christophe Lyon <christophe.lyon@linaro.org>
2025-12-08 10:43:36 +00:00
GCC Administrator
c70bf3e009 Daily bump. 2025-12-07 00:16:26 +00:00
Mark Zhuang
bc46466ec7 [PATCH] prepare-commit-msg: Add compatibility check for --default-prefix option
From: Mark Zhuang <mark.zhuang@spacemit.com>

The previous commit added --default-prefix to handle non-default git
prefix configurations, but this option is not available in older git
versions. This patch adds a compatibility check.

contrib/ChangeLog:

	* prepare-commit-msg: check --default-prefix
2025-12-05 22:16:25 -07:00
GCC Administrator
f67846aca2 Daily bump. 2025-12-05 00:16:26 +00:00
Jonathan Wakely
d903f5f0e6 contrib: Fix typo in function name in check_GNU_style_lib.py
contrib/ChangeLog:

	* check_GNU_style_lib.py (TrailinigOperatorCheck): Rename to
	TrailingOperatorCheck.
2025-12-04 09:47:05 +00:00
GCC Administrator
68de3c4b89 Daily bump. 2025-12-02 09:47:45 +00:00
Jakub Jelinek
be86130982 Add e69bea9b4c to ignored_commits
This fails because we've changed git_commit.py mid day and one commit
was using the old (incorrect) ChangeLog location.

	* gcc-changelog/git_update_version.py (ignored_commits): Add
	e69bea9b4c.
2025-12-02 10:46:54 +01:00
Jose E. Marchesi
0d4c66ab70 Update changelog infrastructure for algol68 and libga68
This commit updates contrib/gcc-changelog/git_commit.py to add
gcc/algol68 and libga68 to default_changelog_locations.

Signed-off-by: Jose E. Marchesi <jemarch@gnu.org>

contrib/ChangeLog

	* gcc-changelog/git_commit.py: Add gcc/algol68 and libga68 to
	default_changelog_locations.
2025-12-01 11:39:26 +01:00
GCC Administrator
c4e28a43f3 Daily bump. 2025-11-23 00:19:38 +00:00
Andrew Pinski
70789a03fb changelog: Add algol68 as a bugzilla component
Adds algol68 as a bugzilla component for commits.

Pushed as obvious.

contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Add algol68.

Signed-off-by: Andrew Pinski <andrew.pinski@oss.qualcomm.com>
2025-11-22 12:48:56 -08:00
GCC Administrator
1b71fbc17f Daily bump. 2025-11-17 00:19:25 +00:00
Rainer Orth
d9a19e6805 Remove /usr/ccs references on Solaris
/usr/ccs/bin has been replaced by a symlink to /usr/bin since at least
Solaris 11.3, so there's no reason to use that path any longer.

This patch removes all references to it.

Tested on i386-pc-solaris2.11.

2025-11-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (md_exec_prefix): Don't set on Solaris.
	* configure: Regenerate.

	contrib:
	* make_sunver.pl ($elfdump): Remove ccs from path.

	gcc:
	* config/sol2.h (MD_EXEC_PREFIX): Remove.

	libstdc++-v3:
	* scripts/extract_symvers.pl: Remove ccs from elfdump path.
2025-11-16 14:00:11 +01:00
GCC Administrator
890dff609d Daily bump. 2025-11-14 00:20:34 +00:00
Filip Kastl
b2163c8a25 contrib/check-params-in-docs.py: Compensate for r16-5132
r16-5132-g6786a073fcead3 added mention of the '=' variant of the
'--param' command line option to gcc/doc/invoke.texi.  This confused
contrib/check-params-in-docs.py.  Fix that.

Commiting as obvious.

contrib/ChangeLog:

	* check-params-in-docs.py: Start parsing from
	@itemx --param=@var{name}=@var{value} instead of
	@item --param @var{name}=@var{value}.

Signed-off-by: Filip Kastl <fkastl@suse.cz>
2025-11-13 14:43:07 +01:00
GCC Administrator
a784ed8dad Daily bump. 2025-11-13 00:20:50 +00:00
Owen Avery
c9d6dff736 Add stdarch to the list of ignored prefixes
Since libgrust/rustc-lib/stdarch is a library copied from rustc, we
should include the directory in ignored_prefixes.

contrib/ChangeLog:

	* gcc-changelog/git_commit.py (ignored_prefixes): Add
	'libgrust/rustc-lib/stdarch/'.

Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
2025-11-12 02:06:36 +00:00
GCC Administrator
54b5234c58 Daily bump. 2025-11-12 00:22:41 +00:00
David Malcolm
8a155c170b diagnostics: add experimental SARIF JSON-RPC notifications for IDEs [PR115970]
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3358r0.html#msvc
describes a feature of Visual Studio 2022 version 17.8. which can send its
diagnostics in SARIF form to a pipe when setting the environment variable
SARIF_OUTPUT_PIPE:
  https://learn.microsoft.com/en-us/cpp/build/reference/sarif-output?view=msvc-170#retrieving-sarif-through-a-pipe

The precise mechanism above involves Windows-specific details (windows pipes
and HANDLEs).

The following patch implements an analogous feature for GCC, using Unix
domain sockets rather than the Windows-specific details.

With this patch, GCC's cc1, cc1plus, etc will check if
EXPERIMENTAL_SARIF_SOCKET is set in the environment, and if so,
will attempt to connect to that socket.  It will send a JSON-RPC
notification to the socket for every diagnostic emitted.  Like the
MSVC feature, the diagnostics are sent one-at-a-time as SARIF
"result" objects, rather than sending a full SARIF "log" object.

The patch includes a python test script which runs a server.
Tested by running the script in one terminal:

$ ../../src/contrib/sarif-listener.py
listening on socket: /tmp/tmpjgts0u0i/socket

and then invoking a build in another terminal with the envvar
set to the pertinent socket:

$ EXPERIMENTAL_SARIF_SOCKET=/tmp/tmpjgts0u0i/socket \
    make check-gcc RUNTESTFLAGS="analyzer.exp=*"

and watching as all the diagnostics generated during the build
get sent to the listener.

The idea is that an IDE ought to be able to create a socket and
set the environment variable when invoking a build, and then listen
for all the diagnostics, without needing to manually set build flags
to inject SARIF output.

This feature is experimental and subject to change or removal
without notice; I'm adding it to make it easier for IDE developers to
try it out and give feedback.

contrib/ChangeLog:
	PR diagnostics/115970
	* sarif-listener.py: New file.

gcc/ChangeLog:
	PR diagnostics/115970
	* diagnostics/sarif-sink.cc: Include <sys/un.h> and <sys/socket.h>.
	(sarif_builder::end_group): Update comment.
	(sarif_sink::on_end_group): Drop "final".
	(class sarif_socket_sink): New subclass.
	(maybe_open_sarif_sink_for_socket): New function.
	* diagnostics/sarif-sink.h: (maybe_open_sarif_sink_for_socket):
	New decl.
	* doc/invoke.texi (EXPERIMENTAL_SARIF_SOCKET): Document new
	environment variable.
	* toplev.cc: Define INCLUDE_VECTOR. Add include of
	"diagnostics/sarif-sink.h".
	(toplev::main): Call
	diagnostics::maybe_open_sarif_sink_for_socket.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
2025-11-11 10:23:13 -05:00
GCC Administrator
590c746c2e Daily bump. 2025-10-31 00:22:18 +00:00
Owen Avery
3022cbafb0 gccrs: Add libcore to the list of ignored prefixes
contrib/ChangeLog:

	* gcc-changelog/git_commit.py (ignored_prefixes): Add
	'libgrust/rustc-lib/core/'.

Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
2025-10-30 20:59:12 +01:00
GCC Administrator
03fed2a80b Daily bump. 2025-10-17 00:18:48 +00:00
David Malcolm
c89bd48e7e diagnostics: generalize state graph code to use json::property instances (v2)
In r16-1631-g2334d30cd8feac I added support for capturing state
information from -fanalyzer in the form of embedded XML strings
in SARIF output.

In r16-2211-ga5d9debedd2f46 I rewrote this so the state was captured in
the form of a SARIF directed graph, using various custom types.

I want to add the ability to capture other kinds of graph in our SARIF
output (e.g. inheritance hierarchies, CFGs, etc), so  the following patch
reworks the state graph handling code to minimize the use of custom types.
Instead, the patch introduces various json::property types, and
describes the state graph serialization in terms of instances of these
properties, rather than hardcoding string attribute names in readers and
writers.  The custom SARIF properties live in a new
"gcc/custom-sarif-properties/" directory.

The "experimental-html" scheme keys "show-state-diagrams-dot-src" and
"show-state-diagrams-sarif" become "show-graph-dot-src" and
"show-graph-dot-src" in preparation for new kinds of graph in the output.

This is an updated version of the patch, tested to build with GCC 5
(which the previous version didn't leading to PR bootstrap/122151)

contrib/ChangeLog:
	* gcc.doxy (INPUT): Add gcc/custom-sarif-properties

gcc/ChangeLog:
	* Makefile.in (OBJS-libcommon): Add
	custom-sarif-properties/digraphs.o and
	custom-sarif-properties/state-graphs.o.  Remove
	diagnostics/state-graphs.o.
	* configure: Regenerate.
	* configure.ac: Add custom-sarif-properties to subdir iteration.
	* custom-sarif-properties/digraphs.cc: New file.
	* custom-sarif-properties/digraphs.h: New file.
	* custom-sarif-properties/state-graphs.cc: New file.
	* custom-sarif-properties/state-graphs.h: New file.
	* diagnostics/diagnostics-selftests.cc
	(run_diagnostics_selftests): Drop call of state_graphs_cc_tests.
	* diagnostics/diagnostics-selftests.h (state_graphs_cc_tests):
	Delete decl.
	* diagnostics/digraphs.cc: Include
	"custom-sarif-properties/digraphs.h".  Move include of
	"selftest.h" to within CHECKING_P section.
	(using digraph_object): New.
	(namespace properties): New.
	(diagnostics::digraphs::object::get_attr): Delete.
	(diagnostics::digraphs::object::set_attr): Delete.
	(diagnostics::digraphs::object::set_json_attr): Delete.
	(digraph_object::get_property): New definitions, for various
	property types.
	(digraph_object::set_property): Likewise.
	(digraph_object::maybe_get_property): New.
	(digraph_object::get_property_as_tristate): New.
	(digraph_object::ensure_property_bag): New.
	(digraph::get_graph_kind): New.
	(digraph::set_graph_kind): New.
	Add include of "custom-sarif-properties/state-graphs.h".
	(selftest::test_simple_graph): Rewrite to use json::property
	instances rather than string attribute names.
	(selftest::test_property_objects): New test.
	(selftest::digraphs_cc_tests): Call it.
	* diagnostics/digraphs.h: Include "tristate.h".
	(object::get_attr): Delete.
	(object::set_attr): Delete.
	(object::get_property): New decls.
	(object::set_property): New decls.
	(object::maybe_get_property): New.
	(object::get_property_as_tristate): New.
	(object::set_json_attr): Delete.
	(object::ensure_property_bag): New.
	(graph::get_graph_kind): New.
	(graph::set_graph_kind): New.
	* diagnostics/html-sink.cc
	(html_generation_options::html_generation_options): Update for
	field renamings.
	(html_generation_options::dump): Likewise.
	(html_builder::maybe_make_state_diagram): Likewise.
	(html_builder::add_graph): Show SARIF and .dot src inline, if
	requested.
	* diagnostics/html-sink.h
	(html_generation_options::m_show_state_diagrams_sarif): Rename
	to...
	(html_generation_options::m_show_graph_sarif): ...this.
	(html_generation_options::m_show_state_diagrams_dot_src): Rename
	to...
	(html_generation_options::m_show_graph_dot_src0): ...this.
	* diagnostics/output-spec.cc
	(html_scheme_handler::maybe_handle_kv): Rename keys.
	(html_scheme_handler::get_keys): Likewise.
	* diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to
	use json::property instances found within custom_sarif_properties
	throughout, rather than types in diagnostics::state_graphs.
	* diagnostics/state-graphs.cc: Deleted file.
	* diagnostics/state-graphs.h: Delete almost all, except decl of
	diagnostics::state_graphs::make_dot_graph.
	* doc/invoke.texi: Update for changes to "experimental-html" sink
	keys.
	* json.cc (json::object::set_string): New.
	(json::object::set_integer): New.
	(json::object::set_bool): New.
	(json::object::set_array_of_string): New.
	* json.h: Include "label-text.h".
	(struct json::property): New template.
	(json::string_property): New.
	(json::integer_property): New.
	(json::bool_property): New.
	(json::json_property): New.
	(using json::array_of_string_property): New.
	(struct json::enum_traits): New.
	(enum_json::property): New.
	(json::value::dyn_cast_array): New vfunc.
	(json::value::dyn_cast_integer_number): New vfunc.
	(json::value::set_string): New.
	(json::value::set_integer): New.
	(json::value::set_bool): New.
	(json::value::set_array_of_string): New.
	(json::value::maybe_get_enum): New.
	(json::value::set_enum): New.
	(json::array::dyn_cast_array): New.
	(json::integer_number::dyn_cast_integer_number): New.
	(object::maybe_get_enum): New.
	(object::set_enum): New.

gcc/analyzer/ChangeLog:
	* ana-state-to-diagnostic-state.cc: Reimplement throughout to use
	json::property instances found within custom_sarif_properties
	throughout, rather than types in diagnostics::state_graphs.
	* ana-state-to-diagnostic-state.h: Likewise.
	* checker-event.cc: Likewise.
	* sm-malloc.cc: Likewise.

gcc/testsuite/ChangeLog:
	* gcc.dg/plugin/diagnostic_plugin_test_graphs.cc
	(report_diag_with_graphs): Port from set_attr to set_property.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
2025-10-16 17:39:03 -04:00
GCC Administrator
954b679175 Daily bump. 2025-10-09 00:21:21 +00:00
Jakub Jelinek
0c0847158c Update to Unicode 17.0.0
The following patch updates GCC from Unicode 16.0.0 to 17.0.0.

I've followed what the README says and updated also one script from
glibc, but that needed another Unicode file - HangulSyllableType.txt -
around as well, so I'm adding it.
I've added one new test to named-universal-char-escape-1.c for
randomly chosen character from new CJK block.
Note, Unicode 17.0.0 authors forgot to adjust the 4-8 table, I've filed
bugreports about that but the UnicodeData.txt changes for the range ends
and the new range seems to match e.g. what is in the glyph tables, so
the patch follows UnicodeData.txt and not 4-8 table here.

Another thing was that makeuname2c.cc didn't handle correctly when
the size of the generated string table modulo 77 was 76 or 77, in which
case it forgot to emit a semicolon after the string literal and so failed
to compile.

And as can be seen in the emoji-data.txt diff, some properties like
Extended_Pictographic have been removed from certain characters, e.g.
from the Mahjong cards characters except U+1F004, and one libstdc++
test was testing that property exactly on U+1F000.  Dunno why that was
changed, but U+1F004 is the only colored one among tons of black and white
ones.

2025-10-08  Jakub Jelinek  <jakub@redhat.com>

contrib/
	* unicode/README: Add HangulSyllableType.txt file to the
	list as newest utf8_gen.py from glibc now needs it.  Adjust
	git commit hash and change unicode 16 version to 17.
	* unicode/from_glibc/utf8_gen.py: Updated from glibc.
	* unicode/DerivedCoreProperties.txt: Updated from Unicode 17.0.0.
	* unicode/emoji-data.txt: Likewise.
	* unicode/PropList.txt: Likewise.
	* unicode/GraphemeBreakProperty.txt: Likewise.
	* unicode/DerivedNormalizationProps.txt: Likewise.
	* unicode/NameAliases.txt: Likewise.
	* unicode/UnicodeData.txt: Likewise.
	* unicode/EastAsianWidth.txt: Likewise.
	* unicode/DerivedGeneralCategory.txt: Likewise.
	* unicode/HangulSyllableType.txt: New file.
gcc/testsuite/
	* c-c++-common/cpp/named-universal-char-escape-1.c: Add test for
	\N{CJK UNIFIED IDEOGRAPH-3340E}.
libcpp/
	* makeucnid.cc (write_copyright): Adjust copyright year.
	* makeuname2c.cc (generated_ranges): Adjust end points for a couple
	of ranges based on UnicodeData.txt Last changes and add a whole new
	CJK UNIFIED IDEOGRAPH- entry.  None of these changes are in the 4-8
	table, but clearly it has just been forgotten.
	(write_copyright): Adjust copyright year.
	(write_dict): Fix up condition when to print semicolon.
	* generated_cpp_wcwidth.h: Regenerate.
	* ucnid.h: Regenerate.
	* uname2c.h: Regenerate.
libstdc++-v3/
	* include/bits/unicode-data.h: Regenerate.
	* testsuite/ext/unicode/properties.cc: Test __is_extended_pictographic
	on U+1F004 rather than U+1F000.
2025-10-08 18:02:39 +02:00
GCC Administrator
7f57e04ce4 Daily bump. 2025-10-05 16:50:51 +00:00
Mark Wielaard
44a7163763 contrib: Ignore commit b40ef6e9dc Sync toplevel files from binutils-gdb
contrib/ChangeLog:

	* gcc-changelog/git_update_version.py (ignored_commits): Add
	commit b40ef6e9dc.
2025-10-05 18:35:01 +02:00
David Malcolm
8cd2db265e Revert: r16-4193 ("diagnostics: generalize state graph code to use json::property instances")
This reverts commit e4ab1f8780.

Patch r16-4193-ge4ab1f87805a65 seems to have broken the build with
GCC 5.5 (PR bootstrap/122151).  Sorry about this.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
2025-10-03 11:17:31 -04:00
David Malcolm
e4ab1f8780 diagnostics: generalize state graph code to use json::property instances
In r16-1631-g2334d30cd8feac I added support for capturing state
information from -fanalyzer in the form of embedded XML strings
in SARIF output.

In r16-2211-ga5d9debedd2f46 I rewrote this so the state was captured in
the form of a SARIF directed graph, using various custom types.

I want to add the ability to capture other kinds of graph in our SARIF
output (e.g. inheritance hierarchies, CFGs, etc), so  the following patch
reworks the state graph handling code to minimize the use of custom types.
Instead, the patch introduces various json::property types, and
describes the state graph serialization in terms of instances of these
properties, rather than hardcoding string attribute names in readers and
writers.  The custom SARIF properties live in a new
"gcc/custom-sarif-properties/" directory.

The "experimental-html" scheme keys "show-state-diagrams-dot-src" and
"show-state-diagrams-sarif" become "show-graph-dot-src" and
"show-graph-dot-src" in preparation for new kinds of graph in the output.

contrib/ChangeLog:
	* gcc.doxy (INPUT): Add gcc/custom-sarif-properties

gcc/ChangeLog:
	* Makefile.in (OBJS-libcommon): Add
	custom-sarif-properties/digraphs.o and
	custom-sarif-properties/state-graphs.o.  Remove
	diagnostics/state-graphs.o.
	* configure: Regenerate.
	* configure.ac: Add custom-sarif-properties to subdir iteration.
	* custom-sarif-properties/digraphs.cc: New file.
	* custom-sarif-properties/digraphs.h: New file.
	* custom-sarif-properties/state-graphs.cc: New file.
	* custom-sarif-properties/state-graphs.h: New file.
	* diagnostics/diagnostics-selftests.cc
	(run_diagnostics_selftests): Drop call of state_graphs_cc_tests.
	* diagnostics/diagnostics-selftests.h (state_graphs_cc_tests):
	Delete decl.
	* diagnostics/digraphs.cc: Include
	"custom-sarif-properties/digraphs.h".  Move include of
	"selftest.h" to within CHECKING_P section.
	(using digraph_object): New.
	(namespace properties): New.
	(diagnostics::digraphs::object::get_attr): Delete.
	(diagnostics::digraphs::object::set_attr): Delete.
	(diagnostics::digraphs::object::set_json_attr): Delete.
	(digraph_object::get_property): New definitions, for various
	property types.
	(digraph_object::set_property): Likewise.
	(digraph_object::maybe_get_property): New.
	(digraph_object::get_property_as_tristate): New.
	(digraph_object::ensure_property_bag): New.
	(digraph::get_graph_kind): New.
	(digraph::set_graph_kind): New.
	Add include of "custom-sarif-properties/state-graphs.h".
	(selftest::test_simple_graph): Rewrite to use json::property
	instances rather than string attribute names.
	(selftest::test_property_objects): New test.
	(selftest::digraphs_cc_tests): Call it.
	* diagnostics/digraphs.h: Include "tristate.h".
	(object::get_attr): Delete.
	(object::set_attr): Delete.
	(object::get_property): New decls.
	(object::set_property): New decls.
	(object::maybe_get_property): New.
	(object::get_property_as_tristate): New.
	(object::set_json_attr): Delete.
	(object::ensure_property_bag): New.
	(graph::get_graph_kind): New.
	(graph::set_graph_kind): New.
	* diagnostics/html-sink.cc
	(html_generation_options::html_generation_options): Update for
	field renamings.
	(html_generation_options::dump): Likewise.
	(html_builder::maybe_make_state_diagram): Likewise.
	(html_builder::add_graph): Show SARIF and .dot src inline, if
	requested.
	* diagnostics/html-sink.h
	(html_generation_options::m_show_state_diagrams_sarif): Rename
	to...
	(html_generation_options::m_show_graph_sarif): ...this.
	(html_generation_options::m_show_state_diagrams_dot_src): Rename
	to...
	(html_generation_options::m_show_graph_dot_src0): ...this.
	* diagnostics/output-spec.cc
	(html_scheme_handler::maybe_handle_kv): Rename keys.
	(html_scheme_handler::get_keys): Likewise.
	* diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to
	use json::property instances found within custom_sarif_properties
	throughout, rather than types in diagnostics::state_graphs.
	* diagnostics/state-graphs.cc: Deleted file.
	* diagnostics/state-graphs.h: Delete almost all, except decl of
	diagnostics::state_graphs::make_dot_graph.
	* doc/invoke.texi: Update for changes to "experimental-html" sink
	keys.
	* json.cc (json::object::set_string): New.
	(json::object::set_integer): New.
	(json::object::set_bool): New.
	(json::object::set_array_of_string): New.
	* json.h: Include "label-text.h".
	(struct json::property): New template.
	(json::string_property): New.
	(json::integer_property): New.
	(json::bool_property): New.
	(json::json_property): New.
	(using json::array_of_string_property): New.
	(struct json::enum_traits): New.
	(enum_json::property): New.
	(json::value::dyn_cast_array): New vfunc.
	(json::value::dyn_cast_integer_number): New vfunc.
	(json::value::set_string): New.
	(json::value::set_integer): New.
	(json::value::set_bool): New.
	(json::value::set_array_of_string): New.
	(json::value::maybe_get_enum): New.
	(json::value::set_enum): New.
	(json::array::dyn_cast_array): New.
	(json::integer_number::dyn_cast_integer_number): New.
	(object::maybe_get_enum): New.
	(object::set_enum): New.

gcc/analyzer/ChangeLog:
	* ana-state-to-diagnostic-state.cc: Reimplement throughout to use
	json::property instances found within custom_sarif_properties
	throughout, rather than types in diagnostics::state_graphs.
	* ana-state-to-diagnostic-state.h: Likewise.
	* checker-event.cc: Likewise.
	* sm-malloc.cc: Likewise.

gcc/testsuite/ChangeLog:
	* gcc.dg/plugin/diagnostic_plugin_test_graphs.cc
	(report_diag_with_graphs): Port from set_attr to set_property.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
2025-10-02 18:19:13 -04:00
GCC Administrator
3b52634c71 Daily bump. 2025-09-24 00:21:37 +00:00
Jonathan Wakely
9959c4db9e contrib: Fix typo in comment in libstdc++ script
contrib/ChangeLog:

	* unicode/gen_libstdcxx_unicode_data.py: Fix comment type.
2025-09-23 10:17:08 +01:00
GCC Administrator
5a43bcc730 Daily bump. 2025-09-23 00:20:06 +00:00
Jonathan Wakely
09f9e63593 contrib: Add DerivedGeneralCategory.txt to comment in libstdc++ script
contrib/ChangeLog:

	* unicode/gen_libstdcxx_unicode_data.py: Update comment at the
	top of the file to mention DerivedGeneralCategory.txt
	prerequisite.
2025-09-22 18:19:32 +01:00
GCC Administrator
9bd24f83a1 Daily bump. 2025-09-18 00:20:40 +00:00
Andrew Pinski
2664206495 uninclude: Add lib/gcc/<anything>/include as an possible include dir
While running uninclude on PR99912's preprocessed source uninclude
didn't uninclude some of the x86_64 target headers. This was because
`lib/gcc/<anything>/include` was not noticed as an possible system
include dir. It supported `gcc-lib/<anything>/include` though.

contrib/ChangeLog:

	* uninclude: Add `lib/gcc/<anything>/include`.
2025-09-17 13:15:26 -07:00