[Bug tree-optimization/118950] [14 regression] RISC-V: rv64gcv runtime mismatch at -O3 since r14-4038-gb975c0dc3be

2025-02-25 Thread rguenther at suse dot de via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118950

--- Comment #12 from rguenther at suse dot de  ---
On Tue, 25 Feb 2025, rdapp at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118950
> 
> --- Comment #11 from Robin Dapp  ---
> I figured this particular problem on RISC-V won't be fixed on GCC 14 because 
> we
> don't have the zeroing of masked elements there.  But you're referring to
> backporting just this patch, right?

Yes, but please wait a while to watch out for problems.

[Bug c++/118923] [15 regression] Wrong code generated for member function pointer call in range-for loop

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118923

--- Comment #7 from GCC Commits  ---
The master branch has been updated by Jakub Jelinek :

https://gcc.gnu.org/g:a41b3f54c13890b1327bb3d4fbae8f7feb37d00b

commit r15-7690-ga41b3f54c13890b1327bb3d4fbae8f7feb37d00b
Author: Jakub Jelinek 
Date:   Tue Feb 25 09:26:46 2025 +0100

c++: Fix range for with PMFs [PR118923]

The following testcases segfault because the new range for
-frange-for-ext-temps
temporary extension extends even the internal TARGET_EXPRs created by
get_member_function_from_ptrfunc.

The following patch fixes that by using get_internal_target_expr for those
instead of force_target_expr (similarly in cp_finish_decl and
build_comparison_op) and using force_target_expr inside of
get_internal_target_expr.

2025-02-25  Jakub Jelinek  

PR c++/118923
* tree.cc (get_internal_target_expr): Use force_target_expr
instead of build_target_expr_with_type.
* typeck.cc (get_member_function_from_ptrfunc): Use
get_internal_target_expr instead of force_target_expr.
* decl.cc (cp_finish_decl): Likewise.
* method.cc (build_comparison_op): Likewise.

* g++.dg/cpp0x/pr118923.C: New test.
* g++.dg/cpp1y/pr118923.C: New test.

[Bug c++/118876] [15 Regression][OpenMP] ICE in add_stmt, at cp/semantics.cc:551 - register_dtor_fn

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118876

--- Comment #5 from GCC Commits  ---
The master branch has been updated by Jakub Jelinek :

https://gcc.gnu.org/g:86a4af2793393e47af6b78cb7094c97914890091

commit r15-7691-g86a4af2793393e47af6b78cb7094c97914890091
Author: Jakub Jelinek 
Date:   Tue Feb 25 09:29:39 2025 +0100

openmp: Fix handling of declare target statics with array type which need
destruction [PR118876]

The following testcase ICEs because it attempts to emit the __tcfa function
twice,
once when handling the host destruction and once when handling nohost
destruction.

This patch fixes it by using __omp_tcfa function for the nohost case and
marks it
with the needed "omp declare target" and "omp declare target nohost"
attributes.

2025-02-25  Jakub Jelinek  

PR c++/118876
* cp-tree.h (register_dtor_fn): Add a bool argument defaulted to
false.
* decl.cc (start_cleanup_fn): Add OMP_TARGET argument, use
"__omp_tcf" prefix rather than "__tcf" in that case.  Add
"omp declare target" and "omp declare target nohost" attributes
to the fndecl.
(register_dtor_fn): Add OMP_TARGET argument, pass it down to
start_cleanup_fn.
* decl2.cc (one_static_initialization_or_destruction): Add
OMP_TARGET
argument, pass it down to register_dtor_fn.
(emit_partial_init_fini_fn): Pass omp_target to
one_static_initialization_or_destruction.
(handle_tls_init): Pass false to
one_static_initialization_or_destruction.

* g++.dg/gomp/pr118876.C: New test.

[Bug c++/118923] [15 regression] Wrong code generated for member function pointer call in range-for loop

2025-02-25 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118923

Jakub Jelinek  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|ASSIGNED|RESOLVED

--- Comment #8 from Jakub Jelinek  ---
Fixed.

[Bug c/119000] [OpenMP] Function parameter incorrectly reported as set but not used.

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119000

--- Comment #2 from GCC Commits  ---
The master branch has been updated by Jakub Jelinek :

https://gcc.gnu.org/g:cdffc76393488a73671b70481cf8a4b7c289029d

commit r15-7692-gcdffc76393488a73671b70481cf8a4b7c289029d
Author: Jakub Jelinek 
Date:   Tue Feb 25 09:33:21 2025 +0100

openmp: Mark OpenMP atomic write expression as read [PR119000]

The following testcase was emitting false positive warning that
the rhs of #pragma omp atomic write was stored but not read,
when the atomic actually does read it.  The following patch
fixes that by calling default_function_array_read_conversion
on it, so that it is marked as read as well as converted from
lvalue to rvalue.
Furthermore, the code had
if (code == NOP_EXPR) ... else ... if (code == NOP_EXPR) ...
with none of ... parts changing code, so I've merged the two ifs.

2025-02-25  Jakub Jelinek  

PR c/119000
* c-parser.cc (c_parser_omp_atomic): For omp write call
default_function_array_read_conversion on the rhs expression.
Merge the two adjacent if (code == NOP_EXPR) blocks.

* c-c++-common/gomp/pr119000.c: New test.

[Bug c++/118876] [15 Regression][OpenMP] ICE in add_stmt, at cp/semantics.cc:551 - register_dtor_fn

2025-02-25 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118876

Jakub Jelinek  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|ASSIGNED|RESOLVED

--- Comment #6 from Jakub Jelinek  ---
Fixed.

[Bug tree-optimization/114921] Optimization flags cause _Float16 to __bf16 casting to do nothing

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114921

--- Comment #6 from GCC Commits  ---
The releases/gcc-13 branch has been updated by Richard Biener
:

https://gcc.gnu.org/g:98fe2ae8afa5dea19034d48876011a636dc23043

commit r13-9391-g98fe2ae8afa5dea19034d48876011a636dc23043
Author: Richard Biener 
Date:   Thu May 2 13:55:15 2024 +0200

tree-optimization/114921 - _Float16 -> __bf16 isn't noop

The vectorizer handles a _Float16 to __bf16 conversion through
vectorizable_assignment, thinking it's a noop.  The following
fixes this by requiring the same vector component mode when
checking for CONVERT_EXPR_CODE_P, being stricter than for
VIEW_CONVERT_EXPR.

PR tree-optimization/114921
* tree-vect-stmts.cc (vectorizable_assignment): Require
same vector component modes for input and output for
CONVERT_EXPR_CODE_P.

(cherry picked from commit 87e35da16df74cd1c4729a55d94e7bc592487f48)

[Bug tree-optimization/117119] [12/13 Regression] ICE in int_cst_value, at tree.cc:11115 since r0-87460-g5b78fc3ed4960c

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117119

--- Comment #4 from GCC Commits  ---
The releases/gcc-13 branch has been updated by Richard Biener
:

https://gcc.gnu.org/g:55c8de5d87509234cfb9fed025a4d4d7c0277a92

commit r13-9393-g55c8de5d87509234cfb9fed025a4d4d7c0277a92
Author: Richard Biener 
Date:   Mon Jan 13 09:12:23 2025 +0100

tree-optimization/117119 - ICE with int128 IV in dataref analysis

Here's another fix for a missing check that an IV value fits in a
HIW.  It's originally from Stefan.

PR tree-optimization/117119
* tree-data-ref.cc (initialize_matrix_A): Check whether
an INTEGER_CST fits in HWI, otherwise return chrec_dont_know.

* gcc.dg/torture/pr117119.c: New testcase.

Co-Authored-By: Stefan Schulze Frielinghaus 
(cherry picked from commit d3904a3ad9d7b4c8e5e536e5166b89548510fd48)

[Bug tree-optimization/117912] [12/13 regression] Linux Kernel 6.13-rc1 Build Failure: 'Detected write beyond size of object' since r0-118806-g17742d62a2438144b6235

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117912

--- Comment #26 from GCC Commits  ---
The releases/gcc-13 branch has been updated by Richard Biener
:

https://gcc.gnu.org/g:56f5e71a5b3de4a07a6f93bac670df5cd4a61734

commit r13-9397-g56f5e71a5b3de4a07a6f93bac670df5cd4a61734
Author: Richard Biener 
Date:   Thu Dec 5 10:47:13 2024 +0100

tree-optimization/117912 - bogus address equivalences for
__builtin_object_size

VN again is the culprit for exploiting address equivalences before
__builtin_object_size got the chance to do its job.  This time
it isn't about union members but adjacent structure fields where
an address to one after the last element of an array field can
spill over to the next field.

The following protects all out-of-bound accesses on the upper bound
side (singling out TYPE_MAX_VALUE + 1 is more expensive).  It
ignores other out-of-bound addresses that would invoke UB.

Zero-sized arrays are a bit awkward because the C++ represents them
with a -1U upper bound.

There's a similar issue for zero-sized components whose address can
be the same as the adjacent field in C.

PR tree-optimization/117912
* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): For addresses
of zero-sized components do not set ->off if the object size pass
didn't run.
For OOB ARRAY_REF accesses in address expressions avoid setting
->off if the object size pass didn't run.
(valueize_refs_1): Likewise.

* c-c++-common/torture/pr117912-1.c: New testcase.
* c-c++-common/torture/pr117912-2.c: Likewise.
* c-c++-common/torture/pr117912-3.c: Likewise.

(cherry picked from commit 233972ab3b5338d7a5d1d7af9108c1f366170e44)

[Bug middle-end/115641] [12/13 Regression] GCC crashes on function has const attribute since r10-3830

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115641

--- Comment #8 from GCC Commits  ---
The releases/gcc-13 branch has been updated by Richard Biener
:

https://gcc.gnu.org/g:ac2bfec1d87d53df6bf7eec9f999781e7fa718b0

commit r13-9395-gac2bfec1d87d53df6bf7eec9f999781e7fa718b0
Author: Richard Biener 
Date:   Thu Jul 18 13:35:33 2024 +0200

middle-end/115641 - invalid address construction

fold_truth_andor_1 via make_bit_field_ref builds an address of
a CALL_EXPR which isn't valid GENERIC and later causes an ICE.
The following simply avoids the folding for f ().a != 1 || f ().b != 2
as it is a premature optimization anyway.  The alternative would
have been to build a TARGET_EXPR around the call.  To get this far
f () has to be const as otherwise the two calls are not semantically
equivalent for the optimization.

PR middle-end/115641
* fold-const.cc (decode_field_reference): If the inner
reference isn't something we can take the address of, fail.

* gcc.dg/torture/pr115641.c: New testcase.

(cherry picked from commit 3670c70c561656a19f6bff36dd229f18120af127)

[Bug c/119000] [OpenMP] Function parameter incorrectly reported as set but not used.

2025-02-25 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119000

--- Comment #3 from Jakub Jelinek  ---
Fixed for 15.1 so far.

[Bug tree-optimization/118717] [12/13 Regression] GCC 15 produces ICE with ruby-3.4.1 when lto is used: ractor.c:592:1: internal compiler error: SSA corruption

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118717

--- Comment #15 from GCC Commits  ---
The releases/gcc-13 branch has been updated by Richard Biener
:

https://gcc.gnu.org/g:08852469a263da1a05f020041c647e42c5cff09a

commit r13-9394-g08852469a263da1a05f020041c647e42c5cff09a
Author: Richard Biener 
Date:   Mon Feb 3 09:55:50 2025 +0100

tree-optimization/118717 - store commoning vs. abnormals

When we sink common stores in cselim or the sink pass we have to
make sure to not introduce overlapping lifetimes for abnormals
used in the ref.  The easiest is to avoid sinking stmts which
reference abnormals at all which is what the following does.

PR tree-optimization/118717
* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1):
Do not common stores referencing abnormal SSA names.
* tree-ssa-sink.cc (sink_common_stores_to_bb): Likewise.

* gcc.dg/torture/pr118717.c: New testcase.

(cherry picked from commit fbcbbfe2bf83eb8b1347144eeca37b06be5a8bb5)

[Bug tree-optimization/114921] Optimization flags cause _Float16 to __bf16 casting to do nothing

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114921

--- Comment #7 from GCC Commits  ---
The releases/gcc-13 branch has been updated by Richard Biener
:

https://gcc.gnu.org/g:9abe274a320c61e0e2cf653f3fb64ea2ae8e146c

commit r13-9392-g9abe274a320c61e0e2cf653f3fb64ea2ae8e146c
Author: Richard Biener 
Date:   Mon May 6 12:03:09 2024 +0200

tree-optimization/114921 - _Float16 -> __bf16 isn't noop fixup

The following further strengthens the check which convert expressions
we allow to vectorize as simple copy by resorting to
tree_nop_conversion_p on the vector components.

PR tree-optimization/114921
* tree-vect-stmts.cc (vectorizable_assignment): Use
tree_nop_conversion_p to identify converts we can vectorize
with a simple assignment.

(cherry picked from commit d0d6dcc019cd32eebf85d625f56e0f7573938319)

[Bug tree-optimization/114921] Optimization flags cause _Float16 to __bf16 casting to do nothing

2025-02-25 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114921

Richard Biener  changed:

   What|Removed |Added

 Resolution|--- |FIXED
  Known to work||13.3.1
   Target Milestone|--- |13.4
 Status|ASSIGNED|RESOLVED

--- Comment #8 from Richard Biener  ---
Fixed.

[Bug fortran/108233] [Coarray] bcast to non-allocatable COMPLEX scalar coarray may generate wrong result

2025-02-25 Thread vehre at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108233

Andre Vehreschild  changed:

   What|Removed |Added

   Last reconfirmed||2025-02-25
 CC||vehre at gcc dot gnu.org
 Status|UNCONFIRMED |NEW
   Assignee|unassigned at gcc dot gnu.org  |vehre at gcc dot gnu.org
 Ever confirmed|0   |1

[Bug middle-end/119010] New: [15 Regression] 444.namd shows a huge compile-time regression with -mtune=znver5

2025-02-25 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119010

Bug ID: 119010
   Summary: [15 Regression] 444.namd shows a huge compile-time
regression with -mtune=znver5
   Product: gcc
   Version: 15.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: rguenth at gcc dot gnu.org
  Target Milestone: ---

With -Ofast -march=znver5 444.namd compile time (the ComputeNonbondedUtil.C
TU),
sky-rockets from taking 8s with GCC 14 to more than 40s.

A similar slowdown can be observed on other archs, for example icelake:
https://lnt.opensuse.org/db_default/v4/SPEC/graph?plot.0=904.120.8&plot.1=1086.120.8&plot.2=798.120.8&;

the revision range of that points to early-break vectorization with alignment
peeling being the likely cause.

For the znver5 arch the main time is spent in scheduling 2:

 scheduling 2   :  34.26 ( 75%)

the vectorization likely exposes more loops triggering latent compile-time
issues on the RTL side.  znver[432] do not exhibit the above issue, nor does
icelake-server.

-march=znver4 -mtune=znver5 is enough to trigger the scheduling issue.

[Bug target/119009] New: AArch64: Commit 'Node clones share order' causes regression in Snappy workload for -mcpu=neoverse-v2 with LTO

2025-02-25 Thread jschmitz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119009

Bug ID: 119009
   Summary: AArch64: Commit 'Node clones share order' causes
regression in Snappy workload for -mcpu=neoverse-v2
with LTO
   Product: gcc
   Version: 15.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jschmitz at gcc dot gnu.org
CC: mjires at gcc dot gnu.org
  Target Milestone: ---
Target: aarch64

Created attachment 60581
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60581&action=edit
Script to reproduce snappy regression

The commit 'Node clones share order'
(https://gcc.gnu.org/g:0895aef01c64c317b489811dbe4ac55f9c13aab3) causes a
performance regression in the Snappy workload for AArch64 with
-mcpu=neoverse-v2 and LTO: the test UIOVecSink/0 shows ~25% longer runtime.

In the attachment is a script to reproduce the regression. It builds GCC from
commits bad3714b and 0895aef0 and runs Snappy with
O3 -Wl,-z,muldefs -lm -flto=auto -Wl,-sort-section=name -mcpu=neoverse-v2

Use the script like this:
parentdir= ./instructions_to_reproduce.sh

[Bug tree-optimization/116850] [12/13 Regression] ICE at -O{s,2,3} on x86_64-linux-gnu: in verify_dominators, at dominance.cc:1194

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116850

--- Comment #8 from GCC Commits  ---
The releases/gcc-13 branch has been updated by Richard Biener
:

https://gcc.gnu.org/g:160e6aeb5c6bf17325c6b7b5dccf32d6eeaf9c32

commit r13-9396-g160e6aeb5c6bf17325c6b7b5dccf32d6eeaf9c32
Author: Richard Biener 
Date:   Thu Sep 26 15:41:59 2024 +0200

tree-optimization/116850 - corrupt post-dom info

Path isolation computes post-dominators on demand but can end up
splitting blocks after that, wrecking it.  We can delay splitting
of blocks until we no longer need the post-dom info which is what
the following patch does to solve the issue.

PR tree-optimization/116850
* gimple-ssa-isolate-paths.cc (bb_split_points): New global.
(insert_trap): Delay BB splitting if post-doms are computed.
(find_explicit_erroneous_behavior): Process delayed BB
splitting after releasing post dominators.
(gimple_ssa_isolate_erroneous_paths): Do not free post-dom
info here.

* gcc.dg/pr116850.c: New testcase.

(cherry picked from commit 64163657ba7e70347087a63bb2b32d83b52ea7d9)

[Bug target/119009] [15 regression] AArch64: Commit 'Node clones share order' (r15-6345-g0895aef01c64c3) causes regression in Snappy workload for -mcpu=neoverse-v2 with LTO

2025-02-25 Thread sjames at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119009

Sam James  changed:

   What|Removed |Added

   Target Milestone|--- |15.0
   Keywords||missed-optimization
Summary|AArch64: Commit 'Node   |[15 regression] AArch64:
   |clones share order' causes  |Commit 'Node clones share
   |regression in Snappy|order'
   |workload for|(r15-6345-g0895aef01c64c3)
   |-mcpu=neoverse-v2 with LTO  |causes regression in Snappy
   ||workload for
   ||-mcpu=neoverse-v2 with LTO

[Bug middle-end/119010] [15 Regression] 444.namd shows a huge compile-time regression with -mtune=znver5

2025-02-25 Thread sjames at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119010

Sam James  changed:

   What|Removed |Added

 Blocks||26163
   Target Milestone|--- |15.0
   Keywords||compile-time-hog


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163
[Bug 26163] [meta-bug] missed optimization in SPEC (2k17, 2k and 2k6 and 95)

[Bug target/118999] [15 regression] AArch64: Switching off early scheduling (r15-6661-gc5db3f50bdf34e) causes regressions in Snappy workload for -mcpu=neoverse-v2

2025-02-25 Thread sjames at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118999

Sam James  changed:

   What|Removed |Added

Summary|AArch64: Switching off  |[15 regression] AArch64:
   |early scheduling causes |Switching off early
   |regressions in Snappy   |scheduling
   |workload for|(r15-6661-gc5db3f50bdf34e)
   |-mcpu=neoverse-v2   |causes regressions in
   ||Snappy workload for
   ||-mcpu=neoverse-v2
   Target Milestone|--- |15.0
 CC||rsandifo at gcc dot gnu.org

[Bug rtl-optimization/119010] [15 Regression] 444.namd shows a huge compile-time regression with -mtune=znver5

2025-02-25 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119010

Richard Biener  changed:

   What|Removed |Added

  Component|middle-end  |rtl-optimization
 CC||hubicka at gcc dot gnu.org
 Target||x86_64-*-*

--- Comment #1 from Richard Biener  ---
Honza, maybe you want to investigate what goes wrong with scheduling or what's
so special about the znver5 automaton?

Samples: 183K of event 'cycles:P', Event count (approx.): 189054710169  
Overhead   Samples  Command  Shared Object  Symbol  
  33.60% 61318  cc1plus  cc1plus[.]
max_issue(ready_list*, int, void*, bool, int*)
  11.00% 20108  cc1plus  cc1plus[.]
internal_min_issue_delay(int, DFA_chip*)
   7.98% 14585  cc1plus  cc1plus[.]
state_transition(void*, rtx_def*)
   6.42% 11765  cc1plus  cc1plus[.]
internal_state_transition(int, DFA_chip*)
   6.05% 11036  cc1plus  libc.so.6  [.]
__memmove_avx_unaligned_erms

[Bug target/119009] [15 regression] AArch64: Commit 'Node clones share order' (r15-6345-g0895aef01c64c3) causes regression in Snappy workload for -mcpu=neoverse-v2 with LTO

2025-02-25 Thread sjames at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119009

--- Comment #1 from Sam James  ---
(Thanks for giving the nice repro scripts. Often we don't get those for
benchmarks (understandably with SPEC, but still).)

[Bug libstdc++/86164] std::regex crashes when matching long lines

2025-02-25 Thread nyh at math dot technion.ac.il via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86164

--- Comment #16 from Nadav Har'El  ---
Two newer duplicates of this issue not yet listed as duplicates:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117394
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112596

[Bug c++/112680] g++-13 segfault on std::regex_match with c++11 or above -O2 and lto

2025-02-25 Thread nyh at math dot technion.ac.il via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112680

Nadav Har'El  changed:

   What|Removed |Added

 CC||nyh at math dot technion.ac.il

--- Comment #3 from Nadav Har'El  ---
I think this is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86164

[Bug fortran/107635] [Coarray] Allocatable components of types defined in module's interface are not handled correctly when used in coarrays.

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107635

--- Comment #13 from GCC Commits  ---
The master branch has been updated by Andre Vehreschild :

https://gcc.gnu.org/g:cc81363c33a3b5768daf2d8a62ae1a80db12ef96

commit r15-7693-gcc81363c33a3b5768daf2d8a62ae1a80db12ef96
Author: Andre Vehreschild 
Date:   Wed Feb 19 09:04:47 2025 +0100

Fortran: Use correct size when transferring between images [PR107635]

gcc/fortran/ChangeLog:

PR fortran/107635

* trans-intrinsic.cc (conv_caf_sendget): Use the size of data
transferred between the two images and not the descritor's size.

[Bug fortran/107635] [Coarray] Allocatable components of types defined in module's interface are not handled correctly when used in coarrays.

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107635

--- Comment #14 from GCC Commits  ---
The master branch has been updated by Andre Vehreschild :

https://gcc.gnu.org/g:af73228fdb2e61c6354f972987ba2a746c3519f7

commit r15-7694-gaf73228fdb2e61c6354f972987ba2a746c3519f7
Author: Andre Vehreschild 
Date:   Fri Feb 21 14:06:28 2025 +0100

Fortran: Fix detection of descriptor arrays in coarray [PR107635]

Look at the formal arguments generated type in the function declaration
to figure if an argument is a descriptor arrays.  Fix handling of class
types while splitting coarray expressions.

PR fortran/107635

gcc/fortran/ChangeLog:

* coarray.cc (fixup_comp_refs): For class types set correct
component (class) type.
(split_expr_at_caf_ref): Provide location.
* trans-intrinsic.cc (conv_caf_send_to_remote): Look at
generated formal argument and not declared one to detect
descriptor arrays.
(conv_caf_sendget): Same.

[Bug target/118992] Redundant argument set up for call

2025-02-25 Thread hjl.tools at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118992

--- Comment #10 from H.J. Lu  ---
(In reply to Hongtao Liu from comment #9)
>
> 
> Remove check of 2 hooks regressed
> 
> gcc: gcc.target/i386/pr111673.c check-function-bodies advance
> unix/-m32: gcc: gcc.target/i386/pr49095.c scan-assembler-not \\(%eax\\), %
> 
> 
> I've also benchmarked SPEC2017 with Ofast, no big difference from
> performance data.

It is because ia32 has very few registers.

[Bug c/119011] New: -Wsign-compare: Split it into several levels

2025-02-25 Thread alx at kernel dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119011

Bug ID: 119011
   Summary: -Wsign-compare: Split it into several levels
   Product: gcc
   Version: 15.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: alx at kernel dot org
  Target Milestone: ---

It is usual to compare the return value of a function with -1 (the usual error
code).

Sometimes, functions returning that code do return an unsigned integer type,
such as size_t or time_t.

Programmers currently need to use a cast for the comparison to not trigger
-Wsign-compare:


alx@debian:~/tmp$ cat f.c 
int
main(void)
{
unsigned long i = 3;

if (i == -1)
return 1;

return 0;
}
alx@debian:~/tmp$ gcc -Wsign-compare f.c 
f.c: In function ‘main’:
f.c:6:15: warning: comparison of integer expressions of different signedness:
‘long unsigned int’ and ‘int’ [-Wsign-compare]
6 | if (i == -1)
  |   ^~


But a cast will silence diagnostics, so one usually wants to avoid the cast. 
Indeed, I've seen code placing the cast in the wrong place of this comparison,
and then resulting in bogus code that cannot be diagnosed.

Then, one might consider adding a suffix to the integer literal, to match the
sign.  However, that's also a bug if the width of the literal doesn't match the
width of the variable:

time_t  t = -1;

if (t == -1u)

The code above is a bug in platforms where time_t and unsigned int are of
different width.

The only reasonable solution is having the compiler just not warn on comparison
of an unsigned against -1, as long as the -1 will be converted to an unsigned
type (and not the other way around).

So, I propose adding -Wsign-compare=1 and -Wsign-compare=2, with -Wsign-compare
defaulting to one of those (I prefer =1, but I don't care too much).  =1
shouldn't warn about comparison to an unsuffixed literal, as long as the rank
of the literal is lower than the rank of the unsigned variable.

[Bug libstdc++/117394] evil regex causes a stack overflow and a crash

2025-02-25 Thread nyh at math dot technion.ac.il via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117394

Nadav Har'El  changed:

   What|Removed |Added

 CC||nyh at math dot technion.ac.il

--- Comment #3 from Nadav Har'El  ---
I think this issue is more accurately a duplicate of
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86164.

That bug is very sad, it has been open for seven years now and has led to a
mass exodus from std::regex to boost::regex which doesn't have this bug -
because it's a serious bug with serious symptoms (crash) that applications have
no way to avoid:

Issue 61601 was a less serious issue because it was about a very complex
regular expression, which users can simply avoid. But issue 86164 and the one
reported here is much more serious: Here the regular expression is simple - but
the user input is just longer, something which is hard for applications to
avoid. Even worse - the failure mode isn't some sort of clean "error", it is an
outright crash of the application.

[Bug bootstrap/119012] New: [riscv] Bootstrap comparison failure: gcc/rust/rust-lex.o differs

2025-02-25 Thread rsworktech at outlook dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119012

Bug ID: 119012
   Summary: [riscv] Bootstrap comparison failure:
gcc/rust/rust-lex.o differs
   Product: gcc
   Version: 14.2.1
Status: UNCONFIRMED
  Keywords: lto
  Severity: normal
  Priority: P3
 Component: bootstrap
  Assignee: unassigned at gcc dot gnu.org
  Reporter: rsworktech at outlook dot com
  Target Milestone: ---
  Host: riscv64-linux-gnu
Target: riscv64-linux-gnu
 Build: riscv64-linux-gnu

I am building gcc 14.2.1+r730+gc061ad5a36ba-1 with gcc
14.2.1+r134+gab884fffe3fc-2 

A bootstrap comparison failure occurred for gcc/rust/rust-lex.o.

Comparing stages 2 and 3
Bootstrap comparison failure!
gcc/rust/rust-lex.o differs

The configure options are here in this build script: https://paste.rs/578r4

And full build logs are available here:
-
https://github.com/user-attachments/files/18727269/gcc-14.2.1%2Br730%2Bgc061ad5a36ba-1-riscv64-prepare.log
-
https://github.com/user-attachments/files/18727277/gcc-14.2.1%2Br730%2Bgc061ad5a36ba-1-riscv64-build.log

Two rust-lex.o from stage 2 and stage 3:
https://github.com/user-attachments/files/18727282/rust-lex.zip

When rust is disabled, the bootstrap could succeed.

Output of diffoscope: https://repos.kxxt.dev/temp/diff.htm

The most different section is .gnu.lto_.jmpfuncs.1.
Other differences are mostly offsets and lto opts.

The diff of disasm of this section is too big to read:
Output from  diff -u <(objdump --disassemble-all --section .gnu.lto_.jmpfuncs.1
 rust-lex.2.o)  <(objdump --disassemble-all --section .gnu.lto_.jmpfuncs.1 
rust-lex.3.o) > diff.log
https://github.com/user-attachments/files/18749578/diff.log

[Bug target/118835] [12/13/14 Regression] ICE in s390_valid_shift_count since r10-1731-ge2839e47894f0b

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118835

--- Comment #3 from GCC Commits  ---
The releases/gcc-14 branch has been updated by Stefan Schulze Frielinghaus
:

https://gcc.gnu.org/g:ce4cb48c3396837cf1562882b3f23f768558945b

commit r14-11342-gce4cb48c3396837cf1562882b3f23f768558945b
Author: Stefan Schulze Frielinghaus 
Date:   Thu Feb 13 09:13:06 2025 +0100

s390: Fix s390_valid_shift_count() for TI mode [PR118835]

During combine we may end up with

(set (reg:DI 66 [ _6 ])
 (ashift:DI (reg:DI 72 [ x ])
(subreg:QI (and:TI (reg:TI 67 [ _1 ])
   (const_wide_int 0x0aabf))
   15)))

where the shift count operand does not trivially fit the scheme of
address operands.  Reject those operands, especially since
strip_address_mutations() expects expressions of the form
(and ... (const_int ...)) and fails for (and ... (const_wide_int ...)).

Thus, be more strict here and accept only CONST_INT operands.  Done by
replacing immediate_operand() with const_int_operand() which is enough
since the former only additionally checks for LEGITIMATE_PIC_OPERAND_P
and targetm.legitimate_constant_p which are always true for CONST_INT
operands.

While on it, fix indentation of the if block.

gcc/ChangeLog:

PR target/118835
* config/s390/s390.cc (s390_valid_shift_count): Reject shift
count operands which do not trivially fit the scheme of
address operands.

gcc/testsuite/ChangeLog:

* gcc.target/s390/pr118835.c: New test.

(cherry picked from commit ac9806dae30d07ab082ac341fe5646987753adcb)

[Bug c/119011] -Wsign-compare: Split it into several levels

2025-02-25 Thread alx at kernel dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119011

--- Comment #1 from Alejandro Colomar  ---
Or maybe we can just make -Wsign-compare not warn on that, without adding
levels at all.

[Bug fortran/107635] [Coarray] Allocatable components of types defined in module's interface are not handled correctly when used in coarrays.

2025-02-25 Thread vehre at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107635

Andre Vehreschild  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #15 from Andre Vehreschild  ---
Should be fixed by last commits.

[Bug fortran/83700] [Meta-bug] Fortran Coarray issues

2025-02-25 Thread vehre at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83700
Bug 83700 depends on bug 107635, which changed state.

Bug 107635 Summary: [Coarray] Allocatable components of types defined in 
module's interface are not handled correctly when used in coarrays.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107635

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

[Bug c/119001] [15 Regression] ICE: in output_constructor_regular_field, at varasm.cc:5833

2025-02-25 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119001

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
union U {
  int i;
  char a[];
};
union U u[2] = {{.a = "12345"}};
is accepted but does the wrong thing (the u[0] content overlaps into the u[1]
one).
union U {
  int i;
  char a[];
};
union U u[2] = {{.a = "12345"},{.i = 3 }};
ICEs in a different spot.
Note,
struct U {
  int i;
  char a[];
};
struct U u[2] = {{.a = "123"}};
is rejected with
pr119001-2.c:5:24: error: initialization of flexible array member in a nested
context
5 | struct U u[2] = {{.a = "123"}};
  |^
pr119001-2.c:5:24: note: (near initialization for ‘u[0]’)
so I think we should emit the same error for the union case as well.

[Bug tree-optimization/86270] [12/13/14 Regression] Simple loop needs an extra register and an extra instruction

2025-02-25 Thread jamborm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86270

--- Comment #20 from Martin Jambor  ---
We no longer track Zen1 performence, but this hasbrought about a dramatic
improvement of 465.tonto on our SomeKindOfLake machine:

https://lnt.opensuse.org/db_default/v4/SPEC/graph?plot.0=464.230.0

Thanks!

[Bug libstdc++/117394] evil regex causes a stack overflow and a crash

2025-02-25 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117394

--- Comment #4 from Jonathan Wakely  ---
(In reply to Nadav Har'El from comment #3)
> I think this issue is more accurately a duplicate of
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86164.

Which is the same problem as Bug 61601.

> That bug is very sad, it has been open for seven years now and has led to a
> mass exodus from std::regex to boost::regex which doesn't have this bug -
> because it's a serious bug with serious symptoms (crash) that applications
> have no way to avoid:

There are other reasons to prefer boost::regex, so maybe it's good that people
are using a better implementation. Our std::regex is unlikely to ever be fast
or efficient, due to ABI compatibility reasons. Even if/when Bug 61601 is
fixed, it will still be slow.

> Issue 61601 was a less serious issue because it was about a very complex
> regular expression, which users can simply avoid. But issue 86164 and the
> one reported here is much more serious: Here the regular expression is
> simple - but the user input is just longer, something which is hard for
> applications to avoid. Even worse - the failure mode isn't some sort of
> clean "error", it is an outright crash of the application.

It's still the same underlying bug though.

[Bug c/119001] [15 Regression] ICE: in output_constructor_regular_field, at varasm.cc:5833

2025-02-25 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119001

--- Comment #4 from Jakub Jelinek  ---
So IMHO at least we want something like:
--- gcc/c/c-typeck.cc.jj2025-02-13 14:10:52.934623189 +0100
+++ gcc/c/c-typeck.cc   2025-02-25 10:47:02.220272763 +0100
@@ -12124,6 +12124,42 @@ retry:
warning (OPT_Wtraditional, "traditional C rejects initialization "
 "of unions");

+ /* Error for non-static initialization of a flexible array member. 
*/
+ if (fieldcode == ARRAY_TYPE
+ && !require_constant_value
+ && TYPE_SIZE (fieldtype) == NULL_TREE)
+   {
+ error_init (loc, "non-static initialization of a flexible "
+ "array member");
+ break;
+   }
+
+ /* Error for initialization of a flexible array member with
+a string constant if the structure is in an array.  E.g.:
+union U { int x; char y[]; };
+union U s[] = { { 1, "foo" } };
+is invalid.  */
+ if (string_flag
+ && fieldcode == ARRAY_TYPE
+ && constructor_depth > 1
+ && TYPE_SIZE (fieldtype) == NULL_TREE)
+   {
+ bool in_array_p = false;
+ for (struct constructor_stack *p = constructor_stack;
+  p && p->type; p = p->next)
+   if (TREE_CODE (p->type) == ARRAY_TYPE)
+ {
+   in_array_p = true;
+   break;
+ }
+ if (in_array_p)
+   {
+ error_init (loc, "initialization of flexible array "
+ "member in a nested context");
+ break;
+   }
+   }
+
  /* Accept a string constant to initialize a subarray.  */
  if (value.value != NULL_TREE
  && fieldcode == ARRAY_TYPE
--- gcc/varasm.cc.jj2025-01-03 17:59:48.816160159 +0100
+++ gcc/varasm.cc   2025-02-25 10:52:08.043968775 +0100
@@ -5827,10 +5827,13 @@ output_constructor_regular_field (oc_loc
 and the FE splits them into dynamic initialization.  */
  gcc_checking_assert (fieldsize >= fldsize);
  /* Given a non-empty initialization, this field had better
-be last.  Given a flexible array member, the next field
-on the chain is a TYPE_DECL of the enclosing struct.  */
+be last except in unions.  Given a flexible array member, the next
+field on the chain is a TYPE_DECL of the enclosing struct.  */
  const_tree next = DECL_CHAIN (local->field);
- gcc_assert (!fieldsize || !next || TREE_CODE (next) != FIELD_DECL);
+ gcc_assert (!fieldsize
+ || !next
+ || TREE_CODE (next) != FIELD_DECL
+ || TREE_CODE (local->type) == UNION_TYPE);
}
   else
fieldsize = tree_to_uhwi (DECL_SIZE_UNIT (local->field));
--- gcc/testsuite/gcc.dg/pr119001-1.c.jj2025-02-25 11:06:07.717169471
+0100
+++ gcc/testsuite/gcc.dg/pr119001-1.c   2025-02-25 11:21:04.947577152 +0100
@@ -0,0 +1,35 @@
+/* PR c/119001 */
+/* { dg-do run } */
+/* { dg-options "" } */
+
+union U { char a[]; int i; };
+union U u = { "12345" };
+union U v = { .a = "6789" };
+union U w = { { 1, 2, 3, 4, 5, 6 } };
+union U x = { .a = { 7, 8, 9 } };
+union V { int i; char a[]; };
+union U y = { .a = "abcdefghijk" };
+union U z = { .a = { 10, 11, 12, 13, 14, 15, 16, 17 } };
+
+int
+main ()
+{
+  for (int i = 0; i < 6; ++i)
+if (u.a[i] != "12345"[i])
+  __builtin_abort ();
+  for (int i = 0; i < 5; ++i)
+if (v.a[i] != "6789"[i])
+  __builtin_abort ();
+  for (int i = 0; i < 6; ++i)
+if (w.a[i] != i + 1)
+  __builtin_abort ();
+  for (int i = 0; i < 3; ++i)
+if (x.a[i] != i + 7)
+  __builtin_abort ();
+  for (int i = 0; i < 12; ++i)
+if (y.a[i] != "abcdefghijk"[i])
+  __builtin_abort ();
+  for (int i = 0; i < 8; ++i)
+if (z.a[i] != i + 10)
+  __builtin_abort ();
+}
--- gcc/testsuite/gcc.dg/pr119001-2.c.jj2025-02-25 11:06:28.124882967
+0100
+++ gcc/testsuite/gcc.dg/pr119001-2.c   2025-02-25 11:17:56.341223024 +0100
@@ -0,0 +1,12 @@
+/* PR c/119001 */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+union U { char a[]; int i; };
+union U u[1] = { { "12345" } };/* { dg-error
"initialization of flexible array member in a nested context" } */
+union U v[1] = { { .a = "6789" } };/* { dg-error "initialization
of flexible array member in a nested context" } */
+union U w[1] = { { { 1, 2, 3, 4, 5, 6 } } };   /* { dg-error "initialization
of flexible array member in a nested context" } */
+union U x[1] = { { .a = { 7, 8, 9 } } };   /* { dg-error "initialization
of flexible array member in a nested context" } */
+union V { int i; char a[]; };
+union V y[1] = { { .a = "6789" } };/* { dg-error "initialization
of flexib

[Bug c/119001] [15 Regression] ICE: in output_constructor_regular_field, at varasm.cc:5833

2025-02-25 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119001

--- Comment #5 from Jakub Jelinek  ---
Created attachment 60582
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60582&action=edit
gcc15-pr119001.patch

Full untested patch.

[Bug tree-optimization/119016] [15 regression] svn miscompiled with -O2 -mavx -fno-vect-cost-model

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119016

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |15.0
   Keywords||wrong-code

--- Comment #2 from Andrew Pinski  ---
Feels like early exit vectorizer ...

[Bug tree-optimization/119016] [15 regression] svn miscompiled with -O2 -mavx -fno-vect-cost-model

2025-02-25 Thread sjames at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119016

Sam James  changed:

   What|Removed |Added

  Attachment #60588|0   |1
is obsolete||

--- Comment #3 from Sam James  ---
Created attachment 60589
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60589&action=edit
eol.c

[Bug middle-end/117342] .base64 emitted when gas doesn't support it

2025-02-25 Thread raj.khem at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117342

--- Comment #18 from Khem Raj  ---
(In reply to Andrew Pinski from comment #16)
> (In reply to Khem Raj from comment #15)
> > My problem was that I made the version to be 15.1.0
> 
> How?

in yocto, we copy the tools/symlinks into locations manually to match
gcc's expected paths, they do have version info the path string. if it
does not match then it falls back to next search path for tools. see

https://git.yoctoproject.org/poky/tree/meta/recipes-devtools/gcc/gcc-cross.inc#n97

[Bug tree-optimization/119016] [15 regression] svn miscompiled with -O2 -mavx -fno-vect-cost-model since r15-6807-g68326d5d1a593d

2025-02-25 Thread sjames at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119016

Sam James  changed:

   What|Removed |Added

 CC||tnfchris at gcc dot gnu.org
Summary|[15 regression] svn |[15 regression] svn
   |miscompiled with -O2 -mavx  |miscompiled with -O2 -mavx
   |-fno-vect-cost-model|-fno-vect-cost-model since
   ||r15-6807-g68326d5d1a593d

--- Comment #4 from Sam James  ---
r15-6807-g68326d5d1a593d

[Bug c++/119017] error on valid user defined literal friend in template class

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119017

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2025-02-25
 Ever confirmed|0   |1

--- Comment #2 from Andrew Pinski  ---
Confirmed. Looks like always been an issue.

[Bug c++/119017] error on valid user defined literal friend in template class

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119017

Andrew Pinski  changed:

   What|Removed |Added

  Attachment #60591|0   |1
is obsolete||

--- Comment #3 from Andrew Pinski  ---
Created attachment 60592
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60592&action=edit
Reduced testcase

[Bug c++/119017] error on valid user defined literal friend in template class

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119017

--- Comment #1 from Andrew Pinski  ---
Created attachment 60591
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60591&action=edit
C++11 testcase

[Bug fortran/108680] Wrong DTIO arguments with -fdefault-integer-8

2025-02-25 Thread kargls at comcast dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108680

--- Comment #11 from kargls at comcast dot net ---
On 2/25/25 12:43, anlauf at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108680
> 
> --- Comment #10 from anlauf at gcc dot gnu.org ---
> (In reply to Jerry DeLisle from comment #9)
>> We can have only one default integer otherwise its not a default. Our
>> default integer is KIND=4
> 
> Forgive me for being stupid, but leaving aside the -fdefault-integer-*,
> where in the standard does it require *default integer* for the unit number?
> Could it be integer(2)?  If not, why not?
> 
> I simply cannot find the text.
> 

If we're discussing derived-type IO, then it is clear from
Fortran 2023, 12.6.4.8.2, (see p. 255) that the unit number
has the default integer kind with the DT edit descriptor.

[Bug target/117069] [15 Regression] gcc.target/i386/apx-ndd-tls-1b.c since r15-268-g9dbff9c05520a7

2025-02-25 Thread liuhongt at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117069

--- Comment #6 from Hongtao Liu  ---
It looks like the testcase is fragile, it's supposed to check the compiler
ability of generating code_6_gottpoff_reloc instruction, but failed since
there's a seg_prefixed memory usage(r14-6242-gd564198f960a2f).

mov r13, QWORD PTR j@gottpoff[rip]
mov r12, QWORD PTR a@gottpoff[rip]
mov rbp, QWORD PTR [rsp+1040]
lea rbx, [rsp+1040]
add r14, QWORD PTR fs:0, r12

[Bug c/119014] Extending _Float16 constant at compile and run time differs

2025-02-25 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119014

--- Comment #8 from Vincent Lefèvre  ---
(In reply to Jakub Jelinek from comment #6)
> I don't think that is true.

Indeed, it seems that I did some mistake when searching the standard, which is
a bit contradictory about the case FLT_EVAL_METHOD = 0. In 5.2.5.3.2, this case
expresses the fact that there is no extended precision for any floating type
(so, the safest behavior), but this is no longer true with Annex H!

Note that extended precision brings confusion for users, with more risks of
issues than benefits: see bug 323 and its 103 duplicates! IMHO, it should
really be avoided by default.

[Bug fortran/108680] Wrong DTIO arguments with -fdefault-integer-8

2025-02-25 Thread jvdelisle at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108680

--- Comment #12 from Jerry DeLisle  ---
"The keyword INTEGER with no kind-selector specifies type integer with default
kind; the kind type parameter value is equal to KIND (0). The decimal exponent
range of default integer shall be at least 5." -- 7.4.3.1 Integer type

Just playing last night:

program ranger
  implicit none
  integer(2) :: two
  integer(4) :: four
  integer(8) :: eight
  real(4) :: tworeal,foureal

  four = huge(four)
  eight = huge(eight)
  tworeal = real(huge(two)) ! log10 does no accept integer arguments
  foureal = real(huge(four))
  print *, range(two), huge(two), log10(tworeal), int(log10(tworeal))
  print *, range(four), huge(four), log10(foureal), int(log10(foureal))
end program ranger


integer(2) range is 4, less than 5, so does not meet requirement for default
INTEGER.

[Bug fortran/108369] FM509 Fails to compile with error when using undocumented -x option

2025-02-25 Thread jvdelisle at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108369

--- Comment #19 from Jerry DeLisle  ---
Created attachment 60593
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60593&action=edit
Possible patch to change compile behavior

This patch changes the fortran/lang-spec.h as a possible better approach.

$ gfc pr108369.f 
pr108369.f:10:17:

   10 |   CALL SN512(C1N001(5)(2:9),CVCOMP)
  | 1
Warning: Actual argument contains too few elements for dummy argument ‘c1d001’
(19/48) at (1)

and

$ gfc -x f77 pr108369.f 
pr108369.f:10:17:

   10 |   CALL SN512(C1N001(5)(2:9),CVCOMP)
  | 1
Warning: Actual argument contains too few elements for dummy argument ‘c1d001’
(19/48) at (1)

What this is doing is invoking -std=legacy for files with suffixes that imply
legacy files such as .f

This is my first dive on the lang-spec file so there may be something a little
different we do.

[Bug ipa/119009] [15 regression] AArch64: Commit 'Node clones share order' (r15-6345-g0895aef01c64c3) causes regression in Snappy workload for -mcpu=neoverse-v2 with LTO

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119009

Andrew Pinski  changed:

   What|Removed |Added

 Ever confirmed|0   |1
   Last reconfirmed||2025-02-25
  Component|target  |ipa
   Keywords||needs-reduction,
   ||needs-source
 Status|UNCONFIRMED |WAITING

--- Comment #2 from Andrew Pinski  ---
Can you narrow down slightly where the regression is?
Since the commit is only supposed to change the order of clones it is hard to
tell if the issue is just an accident (icache differences) or something more
obvious wrong.

[Bug target/118753] [15 Regression] [meta-bug] GCC 15 Regression on x86

2025-02-25 Thread liuhongt at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118753
Bug 118753 depends on bug 117069, which changed state.

Bug 117069 Summary: [15 Regression] gcc.target/i386/apx-ndd-tls-1b.c since 
r15-268-g9dbff9c05520a7
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117069

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

[Bug target/118992] Redundant argument set up for call

2025-02-25 Thread liuhongt at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118992

--- Comment #12 from Hongtao Liu  ---
(In reply to H.J. Lu from comment #11)
> Created attachment 60590 [details]
> A patch
> 
> Can you try this on SPEC CPU?

Sure.

[Bug target/117069] [15 Regression] gcc.target/i386/apx-ndd-tls-1b.c since r15-268-g9dbff9c05520a7

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117069

--- Comment #4 from Andrew Pinski  ---
(In reply to Hongtao Liu from comment #3)
> Fixed.

Do we know what fixed it? As this requires a new binutils i have not tested it
yet.

[Bug target/117069] [15 Regression] gcc.target/i386/apx-ndd-tls-1b.c since r15-268-g9dbff9c05520a7

2025-02-25 Thread liuhongt at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117069

Hongtao Liu  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #3 from Hongtao Liu  ---
Fixed.

[Bug middle-end/117342] .base64 emitted when gas doesn't support it

2025-02-25 Thread raj.khem at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117342

Khem Raj  changed:

   What|Removed |Added

 CC||raj.khem at gmail dot com

--- Comment #15 from Khem Raj  ---
I ran into this problem as well while cross building gcc-trunk for yocto. My
problem was that I made the version to be 15.1.0 instead of 15.0.1 which is
what it should have been as of now. Since the version string was wrong, it did
not pick the assembler from my cross-toolchain but resorted to fallback path
from /usr/bin and it was an older assembler on my debian-11 host resulting in
this error. It happened only when target was x86_64 since it could resort to
use the assembler from host install, cross compiling for dissimilar target
architecture ( e.g. riscv64) it failed to find the assembler and thats how I
narrowed down to my issue.

[Bug libstdc++/93059] char and char8_t does not talk with each other with memcpy. std::copy std::copy_n, std::fill, std::fill_n, std::uninitialized_copy std::uninitialized_copy_n, std::fill, std::unin

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93059

--- Comment #54 from GCC Commits  ---
The master branch has been updated by Jonathan Wakely :

https://gcc.gnu.org/g:2256e30874af2ef804bb19d2eba40f9c92953beb

commit r15-7706-g2256e30874af2ef804bb19d2eba40f9c92953beb
Author: Jonathan Wakely 
Date:   Tue Feb 25 18:06:46 2025 +

libstdc++: Fix typo in std::fill SFINAE constraint [PR93059]

The r15-4321-gd8ef4471cb9c9f change incorrectly used __value as the
member of the __memcpyable_integer trait, but it should have been
__width. That meant this overload was not being used for _Tp != _Up.

Also return after doing the loop for the consteval case. The missing
return wasn't causing incorrect behaviour because the consteval loop
increments the iterator until it equals the end of the range, so the
memset isn't done.  But it's still better to return and not even try
to do the memset.

libstdc++-v3/ChangeLog:

PR libstdc++/93059
* include/bits/stl_algobase.h (__fill_a1): Fix typo in SFINAE
constraint.

[Bug testsuite/115028] [15 regression] gcc.target/i386/pr101950-2.c FAILs since r15-268-g9dbff9c05520a7

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115028

--- Comment #11 from GCC Commits  ---
The trunk branch has been updated by Andrew Pinski :

https://gcc.gnu.org/g:892ee5ffba0760794a932e36771863a86ef2b271

commit r15-7705-g892ee5ffba0760794a932e36771863a86ef2b271
Author: Andrew Pinski 
Date:   Thu Feb 20 13:03:51 2025 -0800

i386: Fix pr101950-2.c [PR115028]

So what is happening here is that after r15-268-g9dbff9c05520a7,
a move instruction still exists after combine and the register
allocator choses different register allocation order for the xor
and because the input operand of lzcntq is not the same as output
operand, there is an extra xor that happens (due to an errata).

This fixes the testcase by using loading from a pointer instead
of a function argument directly. The register allocator has more
freedom since the load has no hard register associated with it (rdi)
so it can be in eax register right away.

Tested for both -m32 and -m64 on x86_64-linux-gnu.

gcc/testsuite/ChangeLog:

PR testsuite/115028
* gcc.target/i386/pr101950-2.c: Use a pointer argument instead
of the argument directly.

Signed-off-by: Andrew Pinski 

[Bug testsuite/115028] [15 regression] gcc.target/i386/pr101950-2.c FAILs since r15-268-g9dbff9c05520a7

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115028

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|ASSIGNED|RESOLVED

--- Comment #12 from Andrew Pinski  ---
Fixed.

[Bug target/118753] [15 Regression] [meta-bug] GCC 15 Regression on x86

2025-02-25 Thread liuhongt at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118753
Bug 118753 depends on bug 117069, which changed state.

Bug 117069 Summary: [15 Regression] gcc.target/i386/apx-ndd-tls-1b.c since 
r15-268-g9dbff9c05520a7
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117069

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---

[Bug target/117069] [15 Regression] gcc.target/i386/apx-ndd-tls-1b.c since r15-268-g9dbff9c05520a7

2025-02-25 Thread liuhongt at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117069

Hongtao Liu  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---

--- Comment #5 from Hongtao Liu  ---
(In reply to Andrew Pinski from comment #4)
> (In reply to Hongtao Liu from comment #3)
> > Fixed.
> 
> Do we know what fixed it? As this requires a new binutils i have not tested
> it yet.

I thought it was fixed with latest binutils, but it's not.(NOTE, we already
have dg-require-effective-target code_6_gottpoff_reloc in the testcase, so it
should not fail both w/ and w/o latest binutils).

I'm sorry for the oversight.

[Bug libstdc++/119018] New: Some iota_view constructors are missing explicit

2025-02-25 Thread luigighiron at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119018

Bug ID: 119018
   Summary: Some iota_view constructors are missing explicit
   Product: gcc
   Version: 15.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: luigighiron at gmail dot com
  Target Milestone: ---

libstdc++ does not correctly mark some of iota_view's constructors as explicit,
for example:

#include
std::ranges::iota_viewfoo(){
return{0,5};
}

This compiles fine using libstdc++, but is rejected when using libc++ or MSVC
STL. Here are the definitions of the iota_view constructors in libstdc++:

> iota_view() requires default_initializable<_Winc> = default;
> 
> ...
> 
> constexpr explicit
> iota_view(_Winc __value)
> 
> ...
> 
> constexpr
> iota_view(type_identity_t<_Winc> __value,
>   type_identity_t<_Bound> __bound)
> 
> ...
> 
> constexpr
> iota_view(_Iterator __first, _Iterator __last)
>   requires same_as<_Winc, _Bound>
> 
> ...
> 
> constexpr
> iota_view(_Iterator __first, unreachable_sentinel_t __last)
>   requires same_as<_Bound, unreachable_sentinel_t>
> 
> ...
> 
> constexpr
> iota_view(_Iterator __first, _Sentinel __last)
>   requires (!same_as<_Winc, _Bound>) && (!same_as<_Bound, 
> unreachable_sentinel_t>)
> 
> ...
Interestingly, the single argument constructor is marked explicit. All
constructors here except the first two should have explicit added.

[Bug fortran/108369] FM509 Fails to compile with error when using undocumented -x option

2025-02-25 Thread kargls at comcast dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108369

--- Comment #20 from kargls at comcast dot net ---
(In reply to Jerry DeLisle from comment #19)
>
> What this is doing is invoking -std=legacy for files with suffixes that
> imply legacy files such as .f
> 
> This is my first dive on the lang-spec file so there may be something a
> little different we do.

The .f suffix denotes fixed-form source code, which is independent
of what -std=legacy originally meant.  The -std=legacy allows a bunch
of nonstandard Fortran or deleted features.  IMO, it should not be
used as a hammer.

Here's an example where -std=legacy may be unintentionally accepting
code that a programmer may otherwise want flagged for an error.

   PROGRAM FOO
   REAL DX, X
   DX = 1.e0
C The next line was allowed in Fortran 66 and 77(?).
   DO X = 0., 10., DX
  PRINT *, X
   END DO
   END

[Bug libstdc++/119018] Some iota_view constructors are missing explicit

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119018

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 Status|UNCONFIRMED |RESOLVED

--- Comment #2 from Andrew Pinski  ---
So a dup.

*** This bug has been marked as a duplicate of bug 114298 ***

[Bug libstdc++/119018] Some iota_view constructors are missing explicit

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119018

--- Comment #1 from Andrew Pinski  ---
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2711r1.html

[Bug libstdc++/114298] std::lazy_split_view constructor is currently not explicit

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114298

Andrew Pinski  changed:

   What|Removed |Added

 CC||luigighiron at gmail dot com

--- Comment #6 from Andrew Pinski  ---
*** Bug 119018 has been marked as a duplicate of this bug. ***

[Bug fortran/108369] FM509 Fails to compile with error when using undocumented -x option

2025-02-25 Thread jvdelisle at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108369

--- Comment #21 from Jerry DeLisle  ---
(In reply to kargls from comment #20)
> (In reply to Jerry DeLisle from comment #19)
> >
> > What this is doing is invoking -std=legacy for files with suffixes that
> > imply legacy files such as .f
> > 
> > This is my first dive on the lang-spec file so there may be something a
> > little different we do.
> 
> The .f suffix denotes fixed-form source code, which is independent
> of what -std=legacy originally meant.  The -std=legacy allows a bunch
> of nonstandard Fortran or deleted features.  IMO, it should not be
> used as a hammer.
> 
It breaks some test cases as well.  At this point I am undecided bewteen
changing this or adding to the documentation that -std=legacy may be needed
when using -x f77 and leave everything alone.

[Bug middle-end/118994] GCC fails to optimize (a >> 1) + (b >> 1) + ((a | b) & 1) to PAVGB/PAVGW (or equivalent instruction)

2025-02-25 Thread liuhongt at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118994

--- Comment #7 from Hongtao Liu  ---
diff --git a/gcc/match.pd b/gcc/match.pd
index 5c679848bdf..d6a465c963c 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -11348,3 +11348,28 @@ and,
   }
   (if (full_perm_p)
(vec_perm (op@3 @0 @1) @3 @2))
+
+#if GIMPLE
+/* Simplify (a >> 1) + (b >> 1) + ((a | b) & 1) to .AVG_CEIL (a, b).
+   Similar for (a | b) - ((a ^ b) >> 1).  */
+
+(simplify
+  (plus:c
+(plus (rshift @0 integer_onep@1) (rshift @2 @1))
+(bit_and (bit_ior @0 @2) integer_onep@3))
+  (if (cfun && (cfun->curr_properties & PROP_last_full_fold) != 0
+  && VECTOR_TYPE_P (type)
+  && direct_internal_fn_supported_p (IFN_AVG_CEIL,
+  type, OPTIMIZE_FOR_BOTH))
+  (IFN_AVG_CEIL @0 @2)))
+
+(simplify
+  (minus
+(bit_ior @0 @2)
+(rshift (bit_xor @0 @2) integer_onep@1))
+  (if (cfun && (cfun->curr_properties & PROP_last_full_fold) != 0
+  && VECTOR_TYPE_P (type)
+  && direct_internal_fn_supported_p (IFN_AVG_CEIL,
+  type, OPTIMIZE_FOR_BOTH))
+  (IFN_AVG_CEIL @0 @2)))
+#endif

I'm testing the above.

[Bug tree-optimization/118464] [15 Regression] gcc-15.0.0_pre20250112 ICE with opencv-4.10.0 using -O2/-ftree-loop-vectorize: memory_descriptor_ref.cpp:94:19: internal compiler error: in exact_div, at

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118464

--- Comment #15 from GCC Commits  ---
The master branch has been updated by Tamar Christina :

https://gcc.gnu.org/g:ebe7cd9f2833a79877fbc56829c4f37a518a9b1d

commit r15-7711-gebe7cd9f2833a79877fbc56829c4f37a518a9b1d
Author: Tamar Christina 
Date:   Wed Feb 26 07:31:28 2025 +

testsuite: Add pragma novector to more tests [PR118464]

These loops will now vectorize the entry finding
loops.  As such we get more failures because they
were not expecting to be vectorized.

Fixed by adding #pragma GCC novector.

gcc/testsuite/ChangeLog:

PR tree-optimization/118464
PR tree-optimization/116855
* g++.dg/ext/pragma-unroll-lambda-lto.C: Add pragma novector.
* gcc.dg/tree-ssa/gen-vect-2.c: Likewise.
* gcc.dg/tree-ssa/gen-vect-25.c: Likewise.
* gcc.dg/tree-ssa/gen-vect-32.c: Likewise.
* gcc.dg/tree-ssa/ivopt_mult_2g.c: Likewise.
* gcc.dg/tree-ssa/ivopts-5.c: Likewise.
* gcc.dg/tree-ssa/ivopts-6.c: Likewise.
* gcc.dg/tree-ssa/ivopts-7.c: Likewise.
* gcc.dg/tree-ssa/ivopts-8.c: Likewise.
* gcc.dg/tree-ssa/ivopts-9.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-1.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-10.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-11.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-12.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-2.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-3.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-4.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-5.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-6.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-7.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-8.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-9.c: Likewise.
* gcc.target/i386/pr90178.c: Likewise.

[Bug tree-optimization/116855] [14/15 Regression] Unsafe early-break vectorization

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116855

--- Comment #9 from GCC Commits  ---
The master branch has been updated by Tamar Christina :

https://gcc.gnu.org/g:ebe7cd9f2833a79877fbc56829c4f37a518a9b1d

commit r15-7711-gebe7cd9f2833a79877fbc56829c4f37a518a9b1d
Author: Tamar Christina 
Date:   Wed Feb 26 07:31:28 2025 +

testsuite: Add pragma novector to more tests [PR118464]

These loops will now vectorize the entry finding
loops.  As such we get more failures because they
were not expecting to be vectorized.

Fixed by adding #pragma GCC novector.

gcc/testsuite/ChangeLog:

PR tree-optimization/118464
PR tree-optimization/116855
* g++.dg/ext/pragma-unroll-lambda-lto.C: Add pragma novector.
* gcc.dg/tree-ssa/gen-vect-2.c: Likewise.
* gcc.dg/tree-ssa/gen-vect-25.c: Likewise.
* gcc.dg/tree-ssa/gen-vect-32.c: Likewise.
* gcc.dg/tree-ssa/ivopt_mult_2g.c: Likewise.
* gcc.dg/tree-ssa/ivopts-5.c: Likewise.
* gcc.dg/tree-ssa/ivopts-6.c: Likewise.
* gcc.dg/tree-ssa/ivopts-7.c: Likewise.
* gcc.dg/tree-ssa/ivopts-8.c: Likewise.
* gcc.dg/tree-ssa/ivopts-9.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-1.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-10.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-11.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-12.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-2.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-3.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-4.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-5.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-6.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-7.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-8.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-9.c: Likewise.
* gcc.target/i386/pr90178.c: Likewise.

[Bug tree-optimization/119016] [15 regression] svn miscompiled with -O2 -mavx -fno-vect-cost-model since r15-6807-g68326d5d1a593d

2025-02-25 Thread tnfchris at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119016

Tamar Christina  changed:

   What|Removed |Added

   Priority|P3  |P1
   Last reconfirmed||2025-02-26
 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1

--- Comment #5 from Tamar Christina  ---
Confirmed.

Slightly easier to digest case:

---
#include 
#include 

__attribute__((noipa)) char *svn_eol__find_eol_start(char *buf, size_t len) {

  for (; len > sizeof(uintptr_t);
   buf += sizeof(uintptr_t), len -= sizeof(uintptr_t)) {
uintptr_t chunk = *(const uintptr_t *)buf;

uintptr_t r_test = chunk ^ 0x0a0a0a0a0a0a0a0a;
uintptr_t n_test = chunk ^ 0x0d0d0d0d0d0d0d0d;

r_test |= (r_test & 0x7f7f7f7f7f7f7f7f) + 0x7f7f7f7f7f7f7f7f;
n_test |= (n_test & 0x7f7f7f7f7f7f7f7f) + 0x7f7f7f7f7f7f7f7f;

if ((r_test & n_test & 0x8080808080808080) != 0x8080808080808080)
  break;
  }

#pragma GCC novector
  for (; len > 0; ++buf, --len) {
if (*buf == '\n' || *buf == '\r')
  return buf;
  }

  return ((void *)0);
}

int main() {
  char p[] = {
  0x2f, 0x2a, 0xa,  0x20, 0x20, 0x20, 0x62, 0x75, 0x67, 0x33, 0x33, 0x37,
  0x39, 0x37, 0x32, 0x33, 0x2e, 0x63, 0xa,  0x2a, 0x2f, 0xa,  0xa,  0x23,
  0x69, 0x6e, 0x63,
  };

  size_t len;
  char *end = p + (sizeof(p) / sizeof(p[0]));
  int i = 0;
  do {
char *start = p + len;

const char *eol = svn_eol__find_eol_start(start, end - start);
len += (eol ? eol : end) - start;
i++;
  } while (((end - p) > len + 2) && i < 100);
}#include 
#include 

__attribute__((noipa)) char *svn_eol__find_eol_start(char *buf, size_t len) {

  for (; len > sizeof(uintptr_t);
   buf += sizeof(uintptr_t), len -= sizeof(uintptr_t)) {
uintptr_t chunk = *(const uintptr_t *)buf;

uintptr_t r_test = chunk ^ 0x0a0a0a0a0a0a0a0a;
uintptr_t n_test = chunk ^ 0x0d0d0d0d0d0d0d0d;

r_test |= (r_test & 0x7f7f7f7f7f7f7f7f) + 0x7f7f7f7f7f7f7f7f;
n_test |= (n_test & 0x7f7f7f7f7f7f7f7f) + 0x7f7f7f7f7f7f7f7f;

if ((r_test & n_test & 0x8080808080808080) != 0x8080808080808080)
  break;
  }

#pragma GCC novector
  for (; len > 0; ++buf, --len) {
if (*buf == '\n' || *buf == '\r')
  return buf;
  }

  return ((void *)0);
}

int main() {
  char p[] = {
  0x2f, 0x2a, 0xa,  0x20, 0x20, 0x20, 0x62, 0x75, 0x67, 0x33, 0x33, 0x37,
  0x39, 0x37, 0x32, 0x33, 0x2e, 0x63, 0xa,  0x2a, 0x2f, 0xa,  0xa,  0x23,
  0x69, 0x6e, 0x63,
  };

  size_t len;
  char *end = p + (sizeof(p) / sizeof(p[0]));
  int i = 0;
  do {
char *start = p + len;

const char *eol = svn_eol__find_eol_start(start, end - start);
len += (eol ? eol : end) - start;
i++;
  } while (((end - p) > len + 2) && i < 100);
}

---
The code is peeled but the address ends up being not aligned:

Program received signal SIGSEGV, Segmentation fault.
0x0040135f in svn_eol__find_eol_start (buf=,
buf@entry=0x7fffe2f2 "\n   bug3379723.c\n*/\n\n#inc\027", len=, len@entry=25) at oel.c:8
8   uintptr_t chunk = *(const uintptr_t *)buf;
(gdb) display/i $pc
1: x/i $pc
=> 0x40135f :  movdqa (%rdi,%rsi,1),%xmm10
(gdb) p/x $rdi+$rsi
$1 = 0x7fffe2f2

which is not 16-bytes aligned, hence the alignment fault.

[Bug c++/119020] New: Problem of constexpr static lambda and maybe GCC accepts invalid

2025-02-25 Thread qurong at ios dot ac.cn via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119020

Bug ID: 119020
   Summary: Problem of constexpr static lambda and maybe GCC
accepts invalid
   Product: gcc
   Version: 14.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: qurong at ios dot ac.cn
  Target Milestone: ---

For this program:


```
struct TestClass {
  void testFinction() {}
  static TestClass* ptr_;
  constexpr static auto funcPtr = +[](){ ptr_->testFinction(); };
};

TestClass* TestClass::ptr_ = new TestClass();

int main() {
  return 0;
}

```

This causes an error in clang, but GCC didn't report the error.

Compiler Explorer link: https://godbolt.org/z/x9bYrGqTn

[Bug c/119019] New: -Wshadow false negative for function parameter (used as array length expression) shadowing a global variable

2025-02-25 Thread alx at kernel dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119019

Bug ID: 119019
   Summary: -Wshadow false negative for function parameter (used
as array length expression) shadowing a global
variable
   Product: gcc
   Version: 14.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: alx at kernel dot org
  Target Milestone: ---

alx@debian:~/tmp$ cat f.c
extern int n;

void f(int a[n], int n);
alx@debian:~/tmp$ gcc -Wall -Wextra -Wshadow -S f.c 
alx@debian:~/tmp$ clang -Weverything -Wno-vla -S f.c 
alx@debian:~/tmp$ 


That program obviously has a bug.  The number of elements of 'a' is intended to
be $2, but it is actually controlled by the global variable 'n'.  I think
-Wshadow should diagnose this.

[Bug target/118835] [12/13 Regression] ICE in s390_valid_shift_count since r10-1731-ge2839e47894f0b

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118835

--- Comment #4 from GCC Commits  ---
The releases/gcc-13 branch has been updated by Stefan Schulze Frielinghaus
:

https://gcc.gnu.org/g:b7466cff8cd4984cea6a2a134c54ca18e20f3fb3

commit r13-9399-gb7466cff8cd4984cea6a2a134c54ca18e20f3fb3
Author: Stefan Schulze Frielinghaus 
Date:   Thu Feb 13 09:13:06 2025 +0100

s390: Fix s390_valid_shift_count() for TI mode [PR118835]

During combine we may end up with

(set (reg:DI 66 [ _6 ])
 (ashift:DI (reg:DI 72 [ x ])
(subreg:QI (and:TI (reg:TI 67 [ _1 ])
   (const_wide_int 0x0aabf))
   15)))

where the shift count operand does not trivially fit the scheme of
address operands.  Reject those operands, especially since
strip_address_mutations() expects expressions of the form
(and ... (const_int ...)) and fails for (and ... (const_wide_int ...)).

Thus, be more strict here and accept only CONST_INT operands.  Done by
replacing immediate_operand() with const_int_operand() which is enough
since the former only additionally checks for LEGITIMATE_PIC_OPERAND_P
and targetm.legitimate_constant_p which are always true for CONST_INT
operands.

While on it, fix indentation of the if block.

gcc/ChangeLog:

PR target/118835
* config/s390/s390.cc (s390_valid_shift_count): Reject shift
count operands which do not trivially fit the scheme of
address operands.

gcc/testsuite/ChangeLog:

* gcc.target/s390/pr118835.c: New test.

(cherry picked from commit ac9806dae30d07ab082ac341fe5646987753adcb)

[Bug fortran/108369] FM509 Fails to compile with error when using undocumented -x option

2025-02-25 Thread kargls at comcast dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108369

--- Comment #22 from kargls at comcast dot net ---
On 2/25/25 20:28, jvdelisle at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108369
> 
> --- Comment #21 from Jerry DeLisle  ---
> (In reply to kargls from comment #20)
>> (In reply to Jerry DeLisle from comment #19)
>>>
>>> What this is doing is invoking -std=legacy for files with suffixes that
>>> imply legacy files such as .f
>>>
>>> This is my first dive on the lang-spec file so there may be something a
>>> little different we do.
>>
>> The .f suffix denotes fixed-form source code, which is independent
>> of what -std=legacy originally meant.  The -std=legacy allows a bunch
>> of nonstandard Fortran or deleted features.  IMO, it should not be
>> used as a hammer.
>>
> It breaks some test cases as well.  At this point I am undecided bewteen
> changing this or adding to the documentation that -std=legacy may be needed
> when using -x f77 and leave everything alone.
> 

I think documenting that the '-x f77' option may also require the
'-std=legacy' option is decent solution.  If the '-x f77' was
added by g77, the we could state that requirements from newer
standards leads to the need to -std=legacy.

[Bug tree-optimization/119016] New: [15 regression] svn miscompiled with -O2 -mavx -fno-vect-cost-model

2025-02-25 Thread sjames at gcc dot gnu.org via Gcc-bugs
,
0x3d, 0x20, 0x7e, 0x69, 0x41, 0x6e, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x3b,
0xa, 0x9, 0x72, 0x47, 0x50, 0x49, 0x4f, 0x5f, 0x42, 0x5f, 0x49, 0x6e, 0x70,
0x75, 0x74, 0x5f, 0x45, 0x6e,
0x61, 0x62, 0x6c, 0x65, 0x20, 0x26, 0x3d, 0x20, 0x69, 0x41, 0x6e, 0x64,
0x4d, 0x61, 0x73, 0x6b, 0x3b, 0xa, 0x9, 0x72, 0x47, 0x50, 0x49, 0x4f, 0x5f,
0x42, 0x5f, 0x4f, 0x75, 0x74,
0x70, 0x75, 0x74, 0x5f, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x7c,
0x3d, 0x20, 0x69, 0x4f, 0x72, 0x4d, 0x61, 0x73, 0x6b, 0x3b, 0x9, 0xa, 0x9,
0x72, 0x47, 0x50, 0x49, 0x4f, 0x5f,
0x42, 0x20, 0x7c, 0x3d, 0x20, 0x69, 0x4f, 0x72, 0x4d, 0x61, 0x73, 0x6b,
0x3b, 0xa, 0x9, 0x69, 0x56, 0x61, 0x6c, 0x20, 0x3d, 0x20, 0x72, 0x47, 0x50,
0x49, 0x4f, 0x5f, 0x42, 0x3b, 0xa,
0x9, 0x69, 0x56, 0x61, 0x6c, 0x20, 0x26, 0x3d, 0x20, 0x69, 0x41, 0x6e,
0x64, 0x4d, 0x61, 0x73, 0x6b, 0x3b, 0xa, 0x9, 0x72, 0x47, 0x50, 0x49, 0x4f,
0x5f, 0x42, 0x20, 0x26, 0x3d, 0x20,
0x69, 0x41, 0x6e, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x3b, 0xa, 0x9, 0x72, 0x47,
0x50, 0x49, 0x4f, 0x5f, 0x42, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f,
0x45, 0x6e, 0x61, 0x62,
0x6c, 0x65, 0x20, 0x26, 0x3d, 0x20, 0x69, 0x41, 0x6e, 0x64, 0x4d, 0x61,
0x73, 0x6b, 0x3b, 0x9, 0xa, 0x9, 0x72, 0x47, 0x50, 0x49, 0x4f, 0x5f, 0x42,
0x5f, 0x49, 0x6e, 0x70, 0x75, 0x74,
0x5f, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x7c, 0x3d, 0x20, 0x69,
0x4f, 0x72, 0x4d, 0x61, 0x73, 0x6b, 0x3b, 0xa, 0xa, 0x9, 0x72, 0x65, 0x74,
0x75, 0x72, 0x6e, 0x20, 0x69, 0x56,
0x61, 0x6c, 0x3b, 0xa, 0x7d, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xa,
0xa, 0x76, 0x6f, 0x69, 0x64, 0xa, 0x74, 0x65, 0x73, 0x74, 0x42, 0x75, 0x67,
0x20, 0x28, 0x76, 0x6f, 0x69,
0x64, 0x29, 0xa, 0x7b, 0xa, 0x20, 0x20, 0x41, 0x53, 0x53, 0x45, 0x52, 0x54,
0x20, 0x28, 0x31, 0x29, 0x3b, 0xa, 0x7d, 0xa, 0xa};

char* end = p + (sizeof(p) / sizeof(p[0]));
const char* eol = NULL;
char* start;
int i = 0;
do {
  start = p + len;

  const char* eol = svn_eol__find_eol_start(start, end - start);
  len += (eol ? eol : end) - start;
  i++;
} while (((end - p) > len + 2) && i < 100);
}

```

```
$ gcc eol.c -std=gnu90 -O2 -mavx -o eol && ./eol
$ gcc eol.c -std=gnu90 -O2 -mavx -o eol -fno-vect-cost-model && ./eol
Segmentation fault (core dumped) ./eol
$ valgrind ./eol
[...]
==714951== Process terminating with default action of signal 11 (SIGSEGV):
dumping core
==714951==  General Protection Fault
==714951==at 0x10868D: svn_eol__find_eol_start (in
/home/sam/bugs/subversion/subversion-1.14.5/build-maybe/eol)
==714951==by 0x10839A: main (in
/home/sam/bugs/subversion/subversion-1.14.5/build-maybe/eol)
==714951==
```

```
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/15/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-pc-linux-gnu
Configured with:
/var/tmp/portage/sys-devel/gcc-15.0./work/gcc-15.0./configure
--host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr
--bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/15
--includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/15/include
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/15
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/15/man
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/15/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15
--disable-silent-rules --disable-dependency-tracking
--with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/15/python
--enable-objc-gc --enable-languages=c,c++,d,go,objc,obj-c++,fortran,ada,m2,rust
--enable-obsolete --enable-secureplt --disable-werror --with-system-zlib
--enable-nls --without-included-gettext --disable-libunwind-exceptions
--enable-checking=yes,extra,rtl --with-bugurl=https://bugs.gentoo.org/
--with-pkgversion='Gentoo Hardened 15.0. p, commit
2f960908caaad18d54ce7cb764ac470656e664c4' --with-gcc-major-version-only
--enable-libstdcxx-time --enable-lto --disable-libstdcxx-pch --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
--enable-multilib --with-multilib-list=m32,m64 --disable-fixed-point
--enable-targets=all --enable-offload-defaulted
--enable-offload-targets=nvptx-none --enable-libgomp --disable-libssp
--enable-libada --disable-cet --disable-systemtap --enable-valgrind-annotations
--disable-vtable-verify --disable-libvtv --with-zstd --with-isl
--disable-isl-version-check --enable-default-pie --enable-host-pie
--enable-host-bind-now --enable-default-ssp --disable-fixincludes
--with-build-config='bootstrap-O3 bootstrap-lto'
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 15.0.1 20250225 (experimental)
2d812eecc36e69b5c39ad49b80ab9965c63fdd09 (Gentoo Hardened 15.0. p, commit
2f960908caaad18d54ce7cb764ac470656e664c4)
```

[Bug tree-optimization/119016] [15 regression] svn miscompiled with -O2 -mavx -fno-vect-cost-model

2025-02-25 Thread sjames at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119016

--- Comment #1 from Sam James  ---
Created attachment 60588
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60588&action=edit
eol.c

[Bug ipa/119012] [riscv] Bootstrap comparison failure: gcc/rust/rust-lex.o differs

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119012

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
 Ever confirmed|0   |1
  Component|bootstrap   |ipa
   Keywords||needs-source
   Last reconfirmed||2025-02-25

--- Comment #1 from Andrew Pinski  ---
Can you attach the preprocessed source for rust-lex.cc ?

The big difference between stage1 and stage2 is debug info.

Can can you post the exact configure command that you are building with rather
than the build script since it is NOT obvious the options being used.


Also the comparison script is different from the what you are doing for
comparison so what you think is the different is incorrect.

It uses $(srcdir)/contrib/compare-lto to the comparison.

[Bug target/118753] [15 Regression] [meta-bug] GCC 15 Regression on x86

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118753
Bug 118753 depends on bug 115028, which changed state.

Bug 115028 Summary: [15 regression] gcc.target/i386/pr101950-2.c FAILs since 
r15-268-g9dbff9c05520a7
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115028

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

[Bug middle-end/117342] .base64 emitted when gas doesn't support it

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117342

--- Comment #16 from Andrew Pinski  ---
(In reply to Khem Raj from comment #15)
> My problem was that I made the version to be 15.1.0

How?

[Bug target/118992] Redundant argument set up for call

2025-02-25 Thread hjl.tools at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118992

--- Comment #11 from H.J. Lu  ---
Created attachment 60590
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60590&action=edit
A patch

Can you try this on SPEC CPU?

[Bug middle-end/117342] .base64 emitted when gas doesn't support it

2025-02-25 Thread sjames at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117342

--- Comment #17 from Sam James  ---
(In reply to Khem Raj from comment #15)

I don't think this is really the same problem. It can easily happen if you e.g.
build gcc 15 with newer binutils then downgrade (with any sort of gymnastics
in-between).

It's not clear what David's original problem was but it was likely the same
thing.

[Bug c++/119017] New: error on valid user defined literal

2025-02-25 Thread tiagomacarios at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119017

Bug ID: 119017
   Summary: error on valid user defined literal
   Product: gcc
   Version: 15.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: tiagomacarios at gmail dot com
  Target Milestone: ---

The following code compiles fine with clang and MSVC. gcc errors

https://godbolt.org/z/1MPvrjfaK
```
#include 

template 
struct S {
friend consteval S operator""_S(const char*, size_t) noexcept;
friend consteval S operator""_S(const wchar_t*, size_t) noexcept;
friend consteval S operator""_S(const char16_t*, size_t)
noexcept;
friend consteval S operator""_S(const char32_t*, size_t)
noexcept;
};

inline consteval S operator""_S(const char* str, size_t) noexcept {
return S{};
}

inline consteval S operator""_S(const wchar_t* str, size_t) noexcept {
return S{};
}

inline consteval S operator""_S(const char16_t* str,
  size_t) noexcept {
return S{};
}

inline consteval S operator""_S(const char32_t* str,
  size_t) noexcept {
return S{};
}

constexpr auto a = "a"_S;
```

Error:
```
:5:30: error: 'consteval S operator""_S(const char*, size_t)' has
invalid argument list [-Wtemplate-body]
5 | friend consteval S operator""_S(const char*, size_t)
noexcept;
  |  ^~~~
:6:33: error: 'consteval S operator""_S(const wchar_t*,
size_t)' has invalid argument list [-Wtemplate-body]
6 | friend consteval S operator""_S(const wchar_t*, size_t)
noexcept;
  | ^~~~
:7:34: error: 'consteval S operator""_S(const char16_t*,
size_t)' has invalid argument list [-Wtemplate-body]
7 | friend consteval S operator""_S(const char16_t*, size_t)
noexcept;
  |  ^~~~
:8:34: error: 'consteval S operator""_S(const char32_t*,
size_t)' has invalid argument list [-Wtemplate-body]
8 | friend consteval S operator""_S(const char32_t*, size_t)
noexcept;
  |  ^~~~
Compiler returned: 1
```

[Bug libstdc++/118083] __possibly_const_range misses input_range constraint

2025-02-25 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118083

--- Comment #2 from GCC Commits  ---
The master branch has been updated by Patrick Palka :

https://gcc.gnu.org/g:1b9e4fe2ff5f4711406cdcf0e6e183b247d9f42b

commit r15-7698-g1b9e4fe2ff5f4711406cdcf0e6e183b247d9f42b
Author: Patrick Palka 
Date:   Tue Feb 25 13:35:04 2025 -0500

libstdc++: Implement LWG 4027 change to possibly-const-range [PR118083]

LWG 4027 effectively makes the const range access CPOs ranges::cfoo behave
more consistently across C++23 and C++20 (pre-P2278R4) and also more
consistently with the std::cfoo range accessors, as the below testcase
adjustments demonstrate (which mostly consist of reverting workarounds
added by r14-3771-gf12e26f3496275 and r13-7186-g0d94c6df183375).

In passing fix PR118083 which reports that the input_range constraint on
possibly-const-range is missing in our implementation.  A consequence of
this is that the const range access CPOs now consistently reject a
non-range
argument, and so in some our of tests we need to introduce otherwise
unused begin/end members.

PR libstdc++/118083

libstdc++-v3/ChangeLog:

* include/bits/ranges_base.h
(ranges::__access::__possibly_const_range): Adjust logic as per
LWG 4027.  Add missing input_range constraint.
* testsuite/std/ranges/access/cbegin.cc (test05): Verify LWG
4027 testcases.
* testsuite/std/ranges/access/cdata.cc: Adjust, simplify and
consolidate some tests after the above.
* testsuite/std/ranges/access/cend.cc: Likewise.
* testsuite/std/ranges/access/crbegin.cc: Likewise.
* testsuite/std/ranges/access/crend.cc: Likewise.
* testsuite/std/ranges/adaptors/join.cc: Likewise.
* testsuite/std/ranges/adaptors/take_while.cc: Likewise.
* testsuite/std/ranges/adaptors/transform.cc: Likewise.

Reviewed-by: Jonathan Wakely 

[Bug libstdc++/118083] __possibly_const_range misses input_range constraint

2025-02-25 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118083

Patrick Palka  changed:

   What|Removed |Added

   Target Milestone|--- |14.3

[Bug c/119001] [15 Regression] ICE: in output_constructor_regular_field, at varasm.cc:5833

2025-02-25 Thread qinzhao at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119001

qinzhao at gcc dot gnu.org changed:

   What|Removed |Added

   Assignee|qinzhao at gcc dot gnu.org |unassigned at gcc dot 
gnu.org

--- Comment #6 from qinzhao at gcc dot gnu.org ---
(In reply to Jakub Jelinek from comment #5)
> Created attachment 60582 [details]
> gcc15-pr119001.patch
> 
> Full untested patch.

thanks a lot, I think the fix is reasonable. 
one question, should we clarify this in the documentation of
 Flexible Array Members in Unions

[Bug fortran/108680] Wrong DTIO arguments with -fdefault-integer-8

2025-02-25 Thread anlauf at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108680

--- Comment #10 from anlauf at gcc dot gnu.org ---
(In reply to Jerry DeLisle from comment #9)
> We can have only one default integer otherwise its not a default. Our
> default integer is KIND=4

Forgive me for being stupid, but leaving aside the -fdefault-integer-*,
where in the standard does it require *default integer* for the unit number?
Could it be integer(2)?  If not, why not?

I simply cannot find the text.

[Bug target/119010] [15 Regression] 444.namd shows a huge compile-time regression with -mtune=znver5

2025-02-25 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119010

Richard Biener  changed:

   What|Removed |Added

  Component|rtl-optimization|target

--- Comment #3 from Richard Biener  ---
So possibly an issue with issue_rate, dfa_lookahead and max_lookahead_tries.
On x86 for sched2 we have dfa_lookahead == issue_rate == 4 for znver4 and below
but 6 for znver5 (and spr).  This results in increasing of max_lookahead
by a factor of 182 (4*4*4*4 vs. 6*6*6*6*6*6) or a complexity increase from
4**4 to 6**6.

The comment mentions

"We would not need this constraint if all real insns (with non-negative codes)
   had reservations because in this case the algorithm complexity is
   O(DFA_LOOKAHEAD**ISSUE_RATE).  Unfortunately, the dfa descriptions
   might be incomplete and such insn might occur."

so maybe this is the case here.  The following ICEs quite quickly after
4665600 tries.  So what does this do?  Does it really try to brute force
finding #issue-width ready insns that can be issued in parallel?  Does the
automaton have 6 ports to issue to?

diff --git a/gcc/haifa-sched.cc b/gcc/haifa-sched.cc
index 63eb06b2d82..cd1f3a6db0a 100644
--- a/gcc/haifa-sched.cc
+++ b/gcc/haifa-sched.cc
@@ -6049,7 +6049,7 @@ max_issue (struct ready_list *ready, int privileged_n,
state_t state,
{
  tries_num++;
  if (tries_num > max_lookahead_tries)
-   break;
+   gcc_unreachable ();//break;
  insn = ready_element (ready, i);
  delay = state_transition (state, insn);
  if (delay < 0)

for the first ICE we have

;;  max_issue among 18 insns:  1682:221:prio=1  1681:220:prio=1 
1680:219:prio=1  1321:213:prio=1  1320:212:prio=1  46:205:prio=1  45:204:prio=1
 44:203:prio=1  43:202:prio=1  1510:179:prio=1  1674:216:prio=1  367:200:prio=1
 47:206:prio=1  2303:180:prio=4  356:183:prio=7  359:187:prio=42 
2415:188:prio=46  1957:185:prio=49

and some of those are

;;  |   47 |1 | xmm11=0.0  nothing
;;  | 1320 |1 | xmm22=[`*.LC2']nothing
;;  | 1321 |1 | xmm21=[`*.LC3']nothing
;;  | 1680 |1 | [sp+0xf0]=r8   nothing
;;  | 1681 |1 | [sp+0xf8]=r12  nothing
;;  | 1682 |1 | [sp+0x100]=r9  nothing
;;  | 1683 |1 | [sp+0xc0]=ax   nothing

[Bug translation/118991] Wrong extracted text in avr.cc

2025-02-25 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118991

--- Comment #5 from Jakub Jelinek  ---
Fix for avr:
2025-02-25  Jakub Jelinek  

PR translation/118991
* config/avr/avr.cc (avr_print_operand): Print ival into
a temporary buffer and use %s in output_operand_lossage to make
the diagnostics translatable.

--- gcc/config/avr/avr.cc.jj2025-02-24 00:06:25.0 +0100
+++ gcc/config/avr/avr.cc   2025-02-25 13:45:58.960806467 +0100
@@ -2750,10 +2750,19 @@ avr_print_operand (FILE *file, rtx x, in
  fprintf (file, HOST_WIDE_INT_PRINT_HEX, ival - sfr0);
  }
else
- output_operand_lossage
-   ("bad I/O address 0x" HOST_WIDE_INT_PRINT_HEX_PURE
-" outside of valid range [0x%x, 0x%x] for %%i operand",
-ival, sfr0, sfr0 + 0x3f);
+ {
+   char buf[17];
+   /* Printed indirectly through buffer, as
+  output_operand_lossage is translatable but uses printf
+  format strings, so HOST_WIDE_INT_PRINT_HEX_PURE macro can't
+  be used thre to make translation possible and how exactly
+  can be HOST_WIDE_INT printed is host dependent.  */
+   snprintf (buf, sizeof buf, HOST_WIDE_INT_PRINT_HEX_PURE,
+ ival);
+   output_operand_lossage ("bad I/O address 0x%s outside of "
+   "valid range [0x%x, 0x%x] for %%i "
+   "operand", buf, sfr0, sfr0 + 0x3f);
+ }
  }
  break; // CONST_INT

[Bug middle-end/118874] [15 regression] ICE in copy_rtx, at rtl.cc:372

2025-02-25 Thread ro at CeBiTec dot Uni-Bielefeld.DE via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118874

--- Comment #4 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
> --- Comment #3 from Jakub Jelinek  ---
> Even just
[...]
> ICEs the same way, so this doesn't seem to be related to range for.
> Does this ICE even with older gcc versions which do support coroutines (14, 
> 13,
> 12, 11, 10)?  Some of those need -fcoroutines.

I've tried with local versions of g++ all the way back to gcc 10: gcc-14
down to gcc-11 do ICE indeed with -m64 -O -fcoroutines, while gcc-10
does not.

Btw., the Solaris cfarm systems do have various versions of gcc
installed in parallel, both bundled (in /usr/gcc/ with a limited set
of languages) and the full monty in /opt/cfarm/gcc-* (with all supported
languages), just in case.

[Bug c/119014] Extending _Float16 constant at compile and run time differs

2025-02-25 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119014

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek  ---
That is the normal behavior of extended precision.
Because without -fexcess-precision=16 _Float16 is evaluated in float precision,
the first 42.42f16 is actually 42.42f returned in _Float16 and thus converted
to the _Float16 precision, while in the x != 42.42f16 case there is no explicit
cast or assignment and so you're actually comparing against 42.42f.
You can use x != (_Float16) 42.42f16 if the constant is supposed to be in
_Float16 precision.

[Bug c/119014] Extending _Float16 constant at compile and run time differs

2025-02-25 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119014

Vincent Lefèvre  changed:

   What|Removed |Added

 CC||vincent-gcc at vinc17 dot net

--- Comment #5 from Vincent Lefèvre  ---
(In reply to Jakub Jelinek from comment #2)
> That is the normal behavior of extended precision.

If you think of FLT_EVAL_METHOD, then this applies *only* to float, double and
long double. The ISO C23 standard does not allow extended precision for the
other floating-point types, such as _Float16.

So, clearly, with -std=c23, GCC is buggy and this bug is valid.

[Bug jit/117047] [15 regression] Segfault in libgccjit garbage collection when compiling GNU Emacs with Native Compilation

2025-02-25 Thread dmalcolm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117047

--- Comment #22 from David Malcolm  ---
Created attachment 60584
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60584&action=edit
Contents of /proc/cpuinfo on a machine that this crash *doesn't* happen on

[Bug fortran/108233] [Coarray] bcast to non-allocatable COMPLEX scalar coarray may generate wrong result

2025-02-25 Thread vehre at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108233

Andre Vehreschild  changed:

   What|Removed |Added

 Status|NEW |WAITING

--- Comment #1 from Andre Vehreschild  ---
Awaiting review of:
https://gcc.gnu.org/pipermail/fortran/2025-February/061782.html

[Bug fortran/117430] gfortran allows type(C_ptr) in I/O list

2025-02-25 Thread jvdelisle at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117430

Jerry DeLisle  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #7 from Jerry DeLisle  ---
Closing as fixed on gcc-15

[Bug translation/118991] Wrong extracted text in avr.cc

2025-02-25 Thread roland.illig at gmx dot de via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118991

--- Comment #6 from Roland Illig  ---
(In reply to Jakub Jelinek from comment #5)
> Fix for avr:

Looks good to me, apart from the typo "thre" in the comment.

[Bug translation/118991] Wrong extracted text in avr.cc

2025-02-25 Thread roland.illig at gmx dot de via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118991

--- Comment #7 from Roland Illig  ---
On the other hand, since you already limit the temporary buffer to 16 hex
digits, you could as well use %#llx directly, as ULLONG_MAX is guaranteed to be
at least 2^64-1 since C99. Or can GCC itself be built in C90, where there is no
ULLONG_MAX?

[Bug c/119014] Extending _Float16 constant at compile and run time differs

2025-02-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119014

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |INVALID
 Status|UNCONFIRMED |RESOLVED
   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=92875

--- Comment #3 from Andrew Pinski  ---
See pr 92875 also.

  1   2   >