<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gcc.git/gcc/go, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/'/>
<entry>
<title>Daily bump.</title>
<updated>2025-11-21T00:16:54+00:00</updated>
<author>
<name>GCC Administrator</name>
<email>gccadmin@gcc.gnu.org</email>
</author>
<published>2025-11-21T00:16:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=6593e4f3398a11dd6430212c619ef5df1d33e8ce'/>
<id>6593e4f3398a11dd6430212c619ef5df1d33e8ce</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Switch from USE_GAS/GLD to HAVE_GNU_AS/LD</title>
<updated>2025-11-20T09:34:13+00:00</updated>
<author>
<name>Rainer Orth</name>
<email>ro@CeBiTec.Uni-Bielefeld.DE</email>
</author>
<published>2025-11-20T09:34:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=240b502bb2ca89ab4e1ad9478e669edd0b59b9fa'/>
<id>240b502bb2ca89ab4e1ad9478e669edd0b59b9fa</id>
<content type='text'>
We currently have two ways to distinguish GNU and non-GNU assemblers and
linkers:

* USE_GAS and USE_GLD, defined via gcc/config/usegas.h and usegld.h
  which are included via config.gcc

* HAVE_GNU_AS and HAVE_GNU_LD, determined from gcc/configure.ac

This is confusing and leads to weird mistakes like combining both into
an undefined USE_GNU_LD.  Since both are based on the same info ($gas
resp. $gnu_ld in gcc/configure.ac), it seems best to standardise on one
of them.  Since the USE_* form is almost exclusively used in
Solaris-specific contexts, it's clearer to use the HAVE_GNU_* forms
instead.

This is what this patch does.

Most of the changes are either Solaris-specific or border on obvious.

Outside of Solaris code, there are only two cases:

* gcc/config/ia64/hpux.h has one macro guarded by !USE_GAS.  This wasn't
  defined before since the configuration for this target doesn't include
  usegas.h.  However, the code is still needed, so the HAVE_GNU_AS form is
  now used.

* Uses of usegas.h in various powerpc*-*-* configurations in
  gcc/config.gcc.  Those make no difference since USE_GAS isn't used in any
  of the affected files.

Bootstrapped without regressions on i386-pc-solaris2.11 and
sparc-sun-solaris2.11 (as/ld, gas/ld, and gas/gld configurations).

2025-11-18  Rainer Orth  &lt;ro@CeBiTec.Uni-Bielefeld.DE&gt;

	gcc:
	* config/i386/sol2.h: Replace USE_GAS by HAVE_GNU_AS.
	Replace USE_GLD by HAVE_GNU_LD.
	* config/sol2.h: Likewise.
	* config/sparc/sol2.h: Likewise.
	* config/i386/i386.cc (i386_solaris_elf_named_section)
	[TARGET_SOLARIS]: Replace USE_GAS by HAVE_GNU_AS.
	* config/ia64/hpux.h: Likewise.

	* config.gcc: Remove usegas.h, usegld.h.
	* config/usegas.h: Remove.
	* config/usegld.h: Remove

	gcc/go:
	* gospec.cc (lang_specific_driver) [TARGET_SOLARIS]: Replace
	USE_GLD by HAVE_GNU_LD.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We currently have two ways to distinguish GNU and non-GNU assemblers and
linkers:

* USE_GAS and USE_GLD, defined via gcc/config/usegas.h and usegld.h
  which are included via config.gcc

* HAVE_GNU_AS and HAVE_GNU_LD, determined from gcc/configure.ac

This is confusing and leads to weird mistakes like combining both into
an undefined USE_GNU_LD.  Since both are based on the same info ($gas
resp. $gnu_ld in gcc/configure.ac), it seems best to standardise on one
of them.  Since the USE_* form is almost exclusively used in
Solaris-specific contexts, it's clearer to use the HAVE_GNU_* forms
instead.

This is what this patch does.

Most of the changes are either Solaris-specific or border on obvious.

Outside of Solaris code, there are only two cases:

* gcc/config/ia64/hpux.h has one macro guarded by !USE_GAS.  This wasn't
  defined before since the configuration for this target doesn't include
  usegas.h.  However, the code is still needed, so the HAVE_GNU_AS form is
  now used.

* Uses of usegas.h in various powerpc*-*-* configurations in
  gcc/config.gcc.  Those make no difference since USE_GAS isn't used in any
  of the affected files.

Bootstrapped without regressions on i386-pc-solaris2.11 and
sparc-sun-solaris2.11 (as/ld, gas/ld, and gas/gld configurations).

2025-11-18  Rainer Orth  &lt;ro@CeBiTec.Uni-Bielefeld.DE&gt;

	gcc:
	* config/i386/sol2.h: Replace USE_GAS by HAVE_GNU_AS.
	Replace USE_GLD by HAVE_GNU_LD.
	* config/sol2.h: Likewise.
	* config/sparc/sol2.h: Likewise.
	* config/i386/i386.cc (i386_solaris_elf_named_section)
	[TARGET_SOLARIS]: Replace USE_GAS by HAVE_GNU_AS.
	* config/ia64/hpux.h: Likewise.

	* config.gcc: Remove usegas.h, usegld.h.
	* config/usegas.h: Remove.
	* config/usegld.h: Remove

	gcc/go:
	* gospec.cc (lang_specific_driver) [TARGET_SOLARIS]: Replace
	USE_GLD by HAVE_GNU_LD.
</pre>
</div>
</content>
</entry>
<entry>
<title>Daily bump.</title>
<updated>2025-10-28T00:21:54+00:00</updated>
<author>
<name>GCC Administrator</name>
<email>gccadmin@gcc.gnu.org</email>
</author>
<published>2025-10-28T00:21:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=3d09cd9311d8a08b1b5046ea0a3c7f30ec50ca0d'/>
<id>3d09cd9311d8a08b1b5046ea0a3c7f30ec50ca0d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup flag_complex_method further</title>
<updated>2025-10-27T13:39:29+00:00</updated>
<author>
<name>Richard Biener</name>
<email>rguenther@suse.de</email>
</author>
<published>2025-10-20T08:20:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=f35ddc7e38e375bcdf9b753b0021fad99ae6e991'/>
<id>f35ddc7e38e375bcdf9b753b0021fad99ae6e991</id>
<content type='text'>
PR122325 reports that -ffast-math no longer enables -fcx-limited-range.
This is due to the weird handling of flag_default_complex_method which
the following simply removes.  Frontends that wish to impose a default
evaluation method that is not -fcx-fortran-rules (the current default
of flag_default_complex_method) need to imposed that in ther
init_options_struct langhook which those requesting C std rules already
do and I'm adding that for the fortran frontend, explicitly requesting
fortran rules.

	PR middle-end/122325
gcc/
	* common.opt (flag_default_complex_method): Remove.
	* opts.cc (init_options_struct): Default to fortran rules
	for complex evaluations.
	(finish_options): Remove (re-)instantiating of the frontend
	default of the complex evaluation method.

gcc/c-family/
	* c-opts.cc (c_common_init_options_struct): Remove set of
	flag_default_complex_method.

gcc/go/
	* go-lang.cc (go_langhook_init_options_struct): Remove set of
	flag_default_complex_method.

gcc/lto/
	* lto-lang.cc (lto_init_options_struct): Remove set of
	flag_default_complex_method.

gcc/fortran/
	* options.cc (gfc_init_options_struct): Set flag_complex_method
	to fortran rules.

gcc/testsuite/
	* gcc.dg/complex-8.c: New testcase.
	* gcc.dg/complex-9.c: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PR122325 reports that -ffast-math no longer enables -fcx-limited-range.
This is due to the weird handling of flag_default_complex_method which
the following simply removes.  Frontends that wish to impose a default
evaluation method that is not -fcx-fortran-rules (the current default
of flag_default_complex_method) need to imposed that in ther
init_options_struct langhook which those requesting C std rules already
do and I'm adding that for the fortran frontend, explicitly requesting
fortran rules.

	PR middle-end/122325
gcc/
	* common.opt (flag_default_complex_method): Remove.
	* opts.cc (init_options_struct): Default to fortran rules
	for complex evaluations.
	(finish_options): Remove (re-)instantiating of the frontend
	default of the complex evaluation method.

gcc/c-family/
	* c-opts.cc (c_common_init_options_struct): Remove set of
	flag_default_complex_method.

gcc/go/
	* go-lang.cc (go_langhook_init_options_struct): Remove set of
	flag_default_complex_method.

gcc/lto/
	* lto-lang.cc (lto_init_options_struct): Remove set of
	flag_default_complex_method.

gcc/fortran/
	* options.cc (gfc_init_options_struct): Set flag_complex_method
	to fortran rules.

gcc/testsuite/
	* gcc.dg/complex-8.c: New testcase.
	* gcc.dg/complex-9.c: Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>Daily bump.</title>
<updated>2025-07-16T00:18:49+00:00</updated>
<author>
<name>GCC Administrator</name>
<email>gccadmin@gcc.gnu.org</email>
</author>
<published>2025-07-16T00:18:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=7b716c7afec37e5206568b6d9d191e96856c271d'/>
<id>7b716c7afec37e5206568b6d9d191e96856c271d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>c, c++: Extend -Wunused-but-set-* warnings [PR44677]</title>
<updated>2025-07-15T13:00:33+00:00</updated>
<author>
<name>Jakub Jelinek</name>
<email>jakub@redhat.com</email>
</author>
<published>2025-07-15T13:00:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=0eac9cfee8cb0b21de866a04d5d59685ab35208f'/>
<id>0eac9cfee8cb0b21de866a04d5d59685ab35208f</id>
<content type='text'>
The -Wunused-but-set-* warnings work by using 2 bits on VAR_DECLs &amp;
PARM_DECLs, TREE_USED and DECL_READ_P.  If neither is set, we typically
emit -Wunused-variable or -Wunused-parameter warning, that is for variables
which are just declared (including initializer) and completely unused.
If TREE_USED is set and DECL_READ_P is unset, -Wunused-but-set-* warnings
are emitted, i.e. for variables which can appear on the lhs of an assignment
expression but aren't actually used elsewhere.  The DECL_READ_P marking is
done through mark_exp_read called from lots of places (e.g. lvalue to rvalue
conversions etc.).

LLVM has an extension on top of that in that it doesn't count pre/post
inc/decrements as use (i.e. DECL_READ_P for GCC).

The following patch does that too, though because we had the current
behavior for 11+ years already and lot of people is -Wunused-but-set-*
warning free in the current GCC behavior and not in the clang one (including
GCC sources), it allows users to choose.
Furthermore, it implements another level, where also var @= expr uses of var
(except when it is also used in expr) aren't counted as DECL_READ_P.

I think it would be nice to also handle var = var @ expr or var = expr @ var
but unfortunately mark_exp_read is then done in both FEs during parsing of
var @ expr or expr @ var and the code doesn't know it is rhs of an
assignment with var as lhs.

The patch works mostly by checking if DECL_READ_P is clear at some point and
then clearing it again after some operation which might have set it.

-Wunused or -Wall or -Wunused -Wextra or -Wall -Wextra turn on the 3 level
of the new warning (i.e. the one which ignores also var++, ++var etc. as
well as var @= expr), so does -Wunused-but-set-{variable,parameter}, but
users can use explicit -Wunused-but-set-{variable,parameter}={1,2} to select
a different level.

2025-07-15  Jakub Jelinek  &lt;jakub@redhat.com&gt;
	    Jason Merrill  &lt;jason@redhat.com&gt;

	PR c/44677
gcc/
	* common.opt (Wunused-but-set-parameter=, Wunused-but-set-variable=):
	New options.
	(Wunused-but-set-parameter, Wunused-but-set-variable): Turn into
	aliases.
	* common.opt.urls: Regenerate.
	* diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Use
	OPT_Wunused_but_set_variable_ instead of OPT_Wunused_but_set_variable
	and OPT_Wunused_but_set_parameter_ instead of
	OPT_Wunused_but_set_parameter.
	* gimple-ssa-store-merging.cc (find_bswap_or_nop_1): Remove unused
	but set variable tmp.
	* ipa-strub.cc (pass_ipa_strub::execute): Cast named_args to
	(void) if ATTR_FNSPEC_DECONST_WATERMARK is not defined.
	* doc/invoke.texi (Wunused-but-set-parameter=,
	Wunused-but-set-variable=): Document new options.
	(Wunused-but-set-parameter, Wunused-but-set-variable): Adjust
	documentation now that they are just aliases.
gcc/c-family/
	* c-opts.cc (c_common_post_options): Change
	warn_unused_but_set_parameter and warn_unused_but_set_variable
	from 1 to 3 if they were set only implicitly.
	* c-attribs.cc (build_attr_access_from_parms): Remove unused
	but set variable nelts.
gcc/c/
	* c-parser.cc (c_parser_unary_expression): Clear DECL_READ_P
	after default_function_array_read_conversion for
	-Wunused-but-set-{parameter,variable}={2,3} on
	PRE{IN,DE}CREMENT_EXPR argument.
	(c_parser_postfix_expression_after_primary): Similarly for
	POST{IN,DE}CREMENT_EXPR.
	* c-decl.cc (pop_scope): Use OPT_Wunused_but_set_variable_
	instead of OPT_Wunused_but_set_variable.
	(finish_function): Use OPT_Wunused_but_set_parameter_
	instead of OPT_Wunused_but_set_parameter.
	* c-typeck.cc (mark_exp_read): Handle {PRE,POST}{IN,DE}CREMENT_EXPR
	and don't handle it when cast to void.
	(build_modify_expr): Clear DECL_READ_P after build_binary_op
	for -Wunused-but-set-{parameter,variable}=3.
gcc/cp/
	* cp-gimplify.cc (cp_fold): Clear DECL_READ_P on lhs of MODIFY_EXPR
	after cp_fold_rvalue if it wasn't set before.
	* decl.cc (poplevel): Use OPT_Wunused_but_set_variable_
	instead of OPT_Wunused_but_set_variable.
	(finish_function): Use OPT_Wunused_but_set_parameter_
	instead of OPT_Wunused_but_set_parameter.
	* expr.cc (mark_use): Clear read_p for {PRE,POST}{IN,DE}CREMENT_EXPR
	cast to void on {VAR,PARM}_DECL for
	-Wunused-but-set-{parameter,variable}={2,3}.
	(mark_exp_read): Handle {PRE,POST}{IN,DE}CREMENT_EXPR and don't handle
	it when cast to void.
	* module.cc (trees_in::fn_parms_fini): Remove unused but set variable
	ix.
	* semantics.cc (finish_unary_op_expr): Return early for
	PRE{IN,DE}CREMENT_EXPR.
	* typeck.cc (cp_build_unary_op): Clear DECL_READ_P
	after mark_lvalue_use for -Wunused-but-set-{parameter,variable}={2,3}
	on PRE{IN,DE}CREMENT_EXPR argument.
	(cp_build_modify_expr): Clear DECL_READ_P after cp_build_binary_op
	for -Wunused-but-set-{parameter,variable}=3.
gcc/go/
	* gofrontend/gogo.cc (Function::export_func_with_type): Remove
	unused but set variable i.
gcc/cobol/
	* gcobolspec.cc (lang_specific_driver): Remove unused but set variable
	n_cobol_files.
gcc/testsuite/
	* c-c++-common/Wunused-parm-1.c: New test.
	* c-c++-common/Wunused-parm-2.c: New test.
	* c-c++-common/Wunused-parm-3.c: New test.
	* c-c++-common/Wunused-parm-4.c: New test.
	* c-c++-common/Wunused-parm-5.c: New test.
	* c-c++-common/Wunused-parm-6.c: New test.
	* c-c++-common/Wunused-var-7.c (bar, baz): Expect warning on a.
	* c-c++-common/Wunused-var-19.c: New test.
	* c-c++-common/Wunused-var-20.c: New test.
	* c-c++-common/Wunused-var-21.c: New test.
	* c-c++-common/Wunused-var-22.c: New test.
	* c-c++-common/Wunused-var-23.c: New test.
	* c-c++-common/Wunused-var-24.c: New test.
	* g++.dg/cpp26/name-independent-decl1.C (foo): Expect one
	set but not used warning.
	* g++.dg/warn/Wunused-parm-12.C: New test.
	* g++.dg/warn/Wunused-parm-13.C: New test.
	* g++.dg/warn/Wunused-var-2.C (f2): Expect set but not used warning
	on parameter x and variable a.
	* g++.dg/warn/Wunused-var-40.C: New test.
	* g++.dg/warn/Wunused-var-41.C: New test.
	* gcc.dg/memchr-3.c (test_find): Change return type from void to int,
	and add return n; statement.
	* gcc.dg/unused-9.c (g): Move dg-bogus to the correct line and expect
	a warning on i.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The -Wunused-but-set-* warnings work by using 2 bits on VAR_DECLs &amp;
PARM_DECLs, TREE_USED and DECL_READ_P.  If neither is set, we typically
emit -Wunused-variable or -Wunused-parameter warning, that is for variables
which are just declared (including initializer) and completely unused.
If TREE_USED is set and DECL_READ_P is unset, -Wunused-but-set-* warnings
are emitted, i.e. for variables which can appear on the lhs of an assignment
expression but aren't actually used elsewhere.  The DECL_READ_P marking is
done through mark_exp_read called from lots of places (e.g. lvalue to rvalue
conversions etc.).

LLVM has an extension on top of that in that it doesn't count pre/post
inc/decrements as use (i.e. DECL_READ_P for GCC).

The following patch does that too, though because we had the current
behavior for 11+ years already and lot of people is -Wunused-but-set-*
warning free in the current GCC behavior and not in the clang one (including
GCC sources), it allows users to choose.
Furthermore, it implements another level, where also var @= expr uses of var
(except when it is also used in expr) aren't counted as DECL_READ_P.

I think it would be nice to also handle var = var @ expr or var = expr @ var
but unfortunately mark_exp_read is then done in both FEs during parsing of
var @ expr or expr @ var and the code doesn't know it is rhs of an
assignment with var as lhs.

The patch works mostly by checking if DECL_READ_P is clear at some point and
then clearing it again after some operation which might have set it.

-Wunused or -Wall or -Wunused -Wextra or -Wall -Wextra turn on the 3 level
of the new warning (i.e. the one which ignores also var++, ++var etc. as
well as var @= expr), so does -Wunused-but-set-{variable,parameter}, but
users can use explicit -Wunused-but-set-{variable,parameter}={1,2} to select
a different level.

2025-07-15  Jakub Jelinek  &lt;jakub@redhat.com&gt;
	    Jason Merrill  &lt;jason@redhat.com&gt;

	PR c/44677
gcc/
	* common.opt (Wunused-but-set-parameter=, Wunused-but-set-variable=):
	New options.
	(Wunused-but-set-parameter, Wunused-but-set-variable): Turn into
	aliases.
	* common.opt.urls: Regenerate.
	* diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Use
	OPT_Wunused_but_set_variable_ instead of OPT_Wunused_but_set_variable
	and OPT_Wunused_but_set_parameter_ instead of
	OPT_Wunused_but_set_parameter.
	* gimple-ssa-store-merging.cc (find_bswap_or_nop_1): Remove unused
	but set variable tmp.
	* ipa-strub.cc (pass_ipa_strub::execute): Cast named_args to
	(void) if ATTR_FNSPEC_DECONST_WATERMARK is not defined.
	* doc/invoke.texi (Wunused-but-set-parameter=,
	Wunused-but-set-variable=): Document new options.
	(Wunused-but-set-parameter, Wunused-but-set-variable): Adjust
	documentation now that they are just aliases.
gcc/c-family/
	* c-opts.cc (c_common_post_options): Change
	warn_unused_but_set_parameter and warn_unused_but_set_variable
	from 1 to 3 if they were set only implicitly.
	* c-attribs.cc (build_attr_access_from_parms): Remove unused
	but set variable nelts.
gcc/c/
	* c-parser.cc (c_parser_unary_expression): Clear DECL_READ_P
	after default_function_array_read_conversion for
	-Wunused-but-set-{parameter,variable}={2,3} on
	PRE{IN,DE}CREMENT_EXPR argument.
	(c_parser_postfix_expression_after_primary): Similarly for
	POST{IN,DE}CREMENT_EXPR.
	* c-decl.cc (pop_scope): Use OPT_Wunused_but_set_variable_
	instead of OPT_Wunused_but_set_variable.
	(finish_function): Use OPT_Wunused_but_set_parameter_
	instead of OPT_Wunused_but_set_parameter.
	* c-typeck.cc (mark_exp_read): Handle {PRE,POST}{IN,DE}CREMENT_EXPR
	and don't handle it when cast to void.
	(build_modify_expr): Clear DECL_READ_P after build_binary_op
	for -Wunused-but-set-{parameter,variable}=3.
gcc/cp/
	* cp-gimplify.cc (cp_fold): Clear DECL_READ_P on lhs of MODIFY_EXPR
	after cp_fold_rvalue if it wasn't set before.
	* decl.cc (poplevel): Use OPT_Wunused_but_set_variable_
	instead of OPT_Wunused_but_set_variable.
	(finish_function): Use OPT_Wunused_but_set_parameter_
	instead of OPT_Wunused_but_set_parameter.
	* expr.cc (mark_use): Clear read_p for {PRE,POST}{IN,DE}CREMENT_EXPR
	cast to void on {VAR,PARM}_DECL for
	-Wunused-but-set-{parameter,variable}={2,3}.
	(mark_exp_read): Handle {PRE,POST}{IN,DE}CREMENT_EXPR and don't handle
	it when cast to void.
	* module.cc (trees_in::fn_parms_fini): Remove unused but set variable
	ix.
	* semantics.cc (finish_unary_op_expr): Return early for
	PRE{IN,DE}CREMENT_EXPR.
	* typeck.cc (cp_build_unary_op): Clear DECL_READ_P
	after mark_lvalue_use for -Wunused-but-set-{parameter,variable}={2,3}
	on PRE{IN,DE}CREMENT_EXPR argument.
	(cp_build_modify_expr): Clear DECL_READ_P after cp_build_binary_op
	for -Wunused-but-set-{parameter,variable}=3.
gcc/go/
	* gofrontend/gogo.cc (Function::export_func_with_type): Remove
	unused but set variable i.
gcc/cobol/
	* gcobolspec.cc (lang_specific_driver): Remove unused but set variable
	n_cobol_files.
gcc/testsuite/
	* c-c++-common/Wunused-parm-1.c: New test.
	* c-c++-common/Wunused-parm-2.c: New test.
	* c-c++-common/Wunused-parm-3.c: New test.
	* c-c++-common/Wunused-parm-4.c: New test.
	* c-c++-common/Wunused-parm-5.c: New test.
	* c-c++-common/Wunused-parm-6.c: New test.
	* c-c++-common/Wunused-var-7.c (bar, baz): Expect warning on a.
	* c-c++-common/Wunused-var-19.c: New test.
	* c-c++-common/Wunused-var-20.c: New test.
	* c-c++-common/Wunused-var-21.c: New test.
	* c-c++-common/Wunused-var-22.c: New test.
	* c-c++-common/Wunused-var-23.c: New test.
	* c-c++-common/Wunused-var-24.c: New test.
	* g++.dg/cpp26/name-independent-decl1.C (foo): Expect one
	set but not used warning.
	* g++.dg/warn/Wunused-parm-12.C: New test.
	* g++.dg/warn/Wunused-parm-13.C: New test.
	* g++.dg/warn/Wunused-var-2.C (f2): Expect set but not used warning
	on parameter x and variable a.
	* g++.dg/warn/Wunused-var-40.C: New test.
	* g++.dg/warn/Wunused-var-41.C: New test.
	* gcc.dg/memchr-3.c (test_find): Change return type from void to int,
	and add return n; statement.
	* gcc.dg/unused-9.c (g): Move dg-bogus to the correct line and expect
	a warning on i.
</pre>
</div>
</content>
</entry>
<entry>
<title>runtime: avoid libc memmove and memclr</title>
<updated>2025-07-08T22:49:16+00:00</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2025-07-01T04:26:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=479872227c0ac284f3935cafe90c70348059a35c'/>
<id>479872227c0ac284f3935cafe90c70348059a35c</id>
<content type='text'>
The libc memmove and memclr don't reliably operate on full memory words.
We already avoided them on PPC64, but the same problem can occur even
on x86, where some processors use "rep movsb" and "rep stosb".
Always use C code that stores full memory words.

While we're here, clean up the C code. We don't need special handling
if the memmove/memclr pointers are not pointer-aligned.

Unfortunately, this will likely be slower. Perhaps some day we can
have our own assembly code that operates a word at a time,
or we can use different operations when we know there are no pointers.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/685178
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The libc memmove and memclr don't reliably operate on full memory words.
We already avoided them on PPC64, but the same problem can occur even
on x86, where some processors use "rep movsb" and "rep stosb".
Always use C code that stores full memory words.

While we're here, clean up the C code. We don't need special handling
if the memmove/memclr pointers are not pointer-aligned.

Unfortunately, this will likely be slower. Perhaps some day we can
have our own assembly code that operates a word at a time,
or we can use different operations when we know there are no pointers.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/685178
</pre>
</div>
</content>
</entry>
<entry>
<title>syscall: pass correct pointer to system call in recvmsgRaw</title>
<updated>2025-07-08T22:01:25+00:00</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2025-07-01T04:23:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=284e13279e8c8067f7a0046a7ca8ff7a16398feb'/>
<id>284e13279e8c8067f7a0046a7ca8ff7a16398feb</id>
<content type='text'>
The code in recvmsgRaw, introduced in https://go.dev/cl/384695,
incorrectly passed &amp;rsa to the recvmsg system call.
But in recvmsgRaw rsa is already a pointer passed by the caller.
This change passes the correct pointer.

I'm guessing that this didn't show up in the testsuite because
we run the tests in short mode.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/685177
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The code in recvmsgRaw, introduced in https://go.dev/cl/384695,
incorrectly passed &amp;rsa to the recvmsg system call.
But in recvmsgRaw rsa is already a pointer passed by the caller.
This change passes the correct pointer.

I'm guessing that this didn't show up in the testsuite because
we run the tests in short mode.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/685177
</pre>
</div>
</content>
</entry>
<entry>
<title>libgo: bump libgo version for GCC 15 release</title>
<updated>2025-03-04T19:43:22+00:00</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2025-03-04T03:39:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=8d7762945bba3c8321b5856cee3d5e5aed55facf'/>
<id>8d7762945bba3c8321b5856cee3d5e5aed55facf</id>
<content type='text'>
For PR go/119098

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/654477
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For PR go/119098

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/654477
</pre>
</div>
</content>
</entry>
<entry>
<title>Daily bump.</title>
<updated>2025-02-06T00:18:03+00:00</updated>
<author>
<name>GCC Administrator</name>
<email>gccadmin@gcc.gnu.org</email>
</author>
<published>2025-02-06T00:18:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=9a409f5c862c44445b2625c4b94145031394ef28'/>
<id>9a409f5c862c44445b2625c4b94145031394ef28</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
