[Bug c/107802] -Wsuggest-attribute=format ignores [[gnu::format(...)]]

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107802

--- Comment #4 from Andrew Pinski  ---
(In reply to Adam Badura from comment #3)
> Why is this marked as a duplicate of bug 98487? I have seen bug 98487 before
> reporting it. Furthermore, I experienced it while trying my code sample on
> the trunk version to see if the problem still exists.

Because the problem is exactly the same. That is with release checking set, the
ICE does not happen and instead the attribute gets ignored.

> However, since trunk version breaks completely with the same code it is not
> possible to determine if the problem reported here exists there or not.
> After preventing the compiler from crashing we may very well start to
> observe the problem reported here.
> 
> Or is bug 98487 intended to solve the problem reported here as well along
> the way?

The later. The ICE is due to how attributes are represented internally inside
GCC. The scoped attributes are done slightly different from the gnu style
attributes but then that was forgotten in the code and only handle the gnu
style attribute and that causes an ICE. The fix is to use the functions which
handle both ways and it will also fix the ignoring part too.

Also if you compile the trunk with --enable-checking=release, you get the
behavior reported here of ignoring the attribute; the ignoring is a symptom and
the ICE shows the cause (but is hidden in releases for speed reasons).

[Bug c/107802] -Wsuggest-attribute=format ignores [[gnu::format(...)]]

2022-11-22 Thread adam.f.badura at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107802

--- Comment #3 from Adam Badura  ---
Why is this marked as a duplicate of bug 98487? I have seen bug 98487 before
reporting it. Furthermore, I experienced it while trying my code sample on the
trunk version to see if the problem still exists.

However, since trunk version breaks completely with the same code it is not
possible to determine if the problem reported here exists there or not. After
preventing the compiler from crashing we may very well start to observe the
problem reported here.

Or is bug 98487 intended to solve the problem reported here as well along the
way?

[Bug libstdc++/107801] Building cross compiler for H8 family fails in libstdc++ (c++17/memory_resource.cc)

2022-11-22 Thread jdx at o2 dot pl via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107801

--- Comment #7 from Jan Dubiec  ---
OK, I have applied the patch manually to my 12.2.0 tree and libstdc++ has been
partially build. "Partially" because everything seems to be fine for H8/300H,
H8S and H8SX in "advanced mode" (let's call it "32-bit mode") but compilation
fails (in the same file!) in "normal mode" ("16-bit mode"). Note the -mn
option:

[...]
Making all in c++17
make[9]: Entering directory
'/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/src/c++17'
/bin/sh ../../libtool --tag CXX --tag disable-shared   --mode=compile
/d/Works/xcomp/gcc-build/./gcc/xgcc -shared-libgcc
-B/d/Works/xcomp/gcc-build/./gcc -nostdinc++
-L/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/src
-L/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/src/.libs
-L/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/libsupc++/.libs
-B/usr/local/h8300-elf/bin/ -B/usr/local/h8300-elf/lib/ -isystem
/usr/local/h8300-elf/include -isystem /usr/local/h8300-elf/sys-include  -mn
-I/d/Works/xcomp/gcc-12.2.0/libstdc++-v3/../libgcc
-I/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/include/h8300-elf
-I/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/include
-I/d/Works/xcomp/gcc-12.2.0/libstdc++-v3/libsupc++   -std=gnu++17 -nostdinc++  
-fno-implicit-templates  -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2 
-fdiagnostics-show-location=once   -ffunction-sections -fdata-sections 
-frandom-seed=floating_from_chars.lo  -fimplicit-templates -isystem
/d/Works/xcomp/sysroot/h8300-elf/include  -mn  -c -o floating_from_chars.lo
../../../../../../gcc-12.2.0/libstdc++-v3/src/c++17/floating_from_chars.cc
libtool: compile:  /d/Works/xcomp/gcc-build/./gcc/xgcc -shared-libgcc
-B/d/Works/xcomp/gcc-build/./gcc -nostdinc++
-L/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/src
-L/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/src/.libs
-L/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/libsupc++/.libs
-B/usr/local/h8300-elf/bin/ -B/usr/local/h8300-elf/lib/ -isystem
/usr/local/h8300-elf/include -isystem /usr/local/h8300-elf/sys-include -mn
-I/d/Works/xcomp/gcc-12.2.0/libstdc++-v3/../libgcc
-I/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/include/h8300-elf
-I/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/include
-I/d/Works/xcomp/gcc-12.2.0/libstdc++-v3/libsupc++ -std=gnu++17 -nostdinc++
-fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2
-fdiagnostics-show-location=once -ffunction-sections -fdata-sections
-frandom-seed=floating_from_chars.lo -fimplicit-templates -isystem
/d/Works/xcomp/sysroot/h8300-elf/include -mn -c
../../../../../../gcc-12.2.0/libstdc++-v3/src/c++17/floating_from_chars.cc -o
floating_from_chars.o
/bin/sh ../../libtool --tag CXX --tag disable-shared   --mode=compile
/d/Works/xcomp/gcc-build/./gcc/xgcc -shared-libgcc
-B/d/Works/xcomp/gcc-build/./gcc -nostdinc++
-L/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/src
-L/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/src/.libs
-L/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/libsupc++/.libs
-B/usr/local/h8300-elf/bin/ -B/usr/local/h8300-elf/lib/ -isystem
/usr/local/h8300-elf/include -isystem /usr/local/h8300-elf/sys-include  -mn
-I/d/Works/xcomp/gcc-12.2.0/libstdc++-v3/../libgcc
-I/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/include/h8300-elf
-I/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/include
-I/d/Works/xcomp/gcc-12.2.0/libstdc++-v3/libsupc++   -std=gnu++17 -nostdinc++  
-fno-implicit-templates  -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2 
-fdiagnostics-show-location=once   -ffunction-sections -fdata-sections 
-frandom-seed=floating_to_chars.lo  -fimplicit-templates -isystem
/d/Works/xcomp/sysroot/h8300-elf/include  -mn  -c -o floating_to_chars.lo
../../../../../../gcc-12.2.0/libstdc++-v3/src/c++17/floating_to_chars.cc
libtool: compile:  /d/Works/xcomp/gcc-build/./gcc/xgcc -shared-libgcc
-B/d/Works/xcomp/gcc-build/./gcc -nostdinc++
-L/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/src
-L/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/src/.libs
-L/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/libsupc++/.libs
-B/usr/local/h8300-elf/bin/ -B/usr/local/h8300-elf/lib/ -isystem
/usr/local/h8300-elf/include -isystem /usr/local/h8300-elf/sys-include -mn
-I/d/Works/xcomp/gcc-12.2.0/libstdc++-v3/../libgcc
-I/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/include/h8300-elf
-I/d/Works/xcomp/gcc-build/h8300-elf/normal/libstdc++-v3/include
-I/d/Works/xcomp/gcc-12.2.0/libstdc++-v3/libsupc++ -std=gnu++17 -nostdinc++
-fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2
-fdiagnostics-show-location=once -ffunction-sections -fdata-sections
-frandom-seed=floating_to_chars.lo -fimplicit-templates -isystem
/d/Works/xcomp/sysroot/h8300-elf/include -mn -c
../../../../../../gcc-12.2.0/libstdc++-v3/src/c++17/floating_to_chars.cc -o
floating_to_chars.o
/bin/sh ../../libtool --tag 

[Bug testsuite/107830] New: [13 Regression] ICE in gen_aarch64_bitmask_udiv3, at ./insn-opinit.h:813

2022-11-22 Thread asolokha at gmx dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107830

Bug ID: 107830
   Summary: [13 Regression] ICE in gen_aarch64_bitmask_udiv3, at
./insn-opinit.h:813
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code, openmp
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: asolokha at gmx dot com
  Target Milestone: ---
Target: aarch64-linux-gnu

gcc 13.0.0 20221120 snapshot (g:a16a5460447eaaff0b4468064e4d7b1cc8fc42eb) ICEs
when compiling the following testcase, reduced from
libgomp/testsuite/libgomp.c-c++-common/for-15.c, w/ -march=armv9-a -Os
-fopenmp:

void
f2 (int *a)
{
  unsigned int i;

#pragma omp simd
  for (i = 0; i < 4; ++i)
a[i / 3] -= 4;
}

% aarch64-linux-gnu-gcc-13 -march=armv9-a -Os -fopenmp -c t3uokd3k.c
during RTL pass: expand
t3uokd3k.c: In function 'f2':
t3uokd3k.c:8:9: internal compiler error: in gen_aarch64_bitmask_udiv3, at
./insn-opinit.h:813
8 | a[i / 3] -= 4;
  |   ~~^~~
0x7e5c72 gen_aarch64_bitmask_udiv3(machine_mode, rtx_def*, rtx_def*, rtx_def*)
./insn-opinit.h:813
0x7e5c72 gen_aarch64_bitmask_udiv3(machine_mode, rtx_def*, rtx_def*, rtx_def*)
./insn-opinit.h:810
0x7e5c72 aarch64_vectorize_can_special_div_by_constant(tree_code, tree_node*,
generic_wide_int, rtx_def**, rtx_def*, rtx_def*)
   
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221120/work/gcc-13-20221120/gcc/config/aarch64/aarch64.cc:24339
0xb26cca expand_divmod(int, tree_code, machine_mode, tree_node*, tree_node*,
rtx_def*, rtx_def*, rtx_def*, int, optab_methods)
   
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221120/work/gcc-13-20221120/gcc/expmed.cc:4383
0xb2a706 expand_expr_divmod
   
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221120/work/gcc-13-20221120/gcc/expr.cc:9198
0xb349ab expand_expr_real_2(separate_ops*, rtx_def*, machine_mode,
expand_modifier)
   
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221120/work/gcc-13-20221120/gcc/expr.cc:9868
0xa0eac0 expand_gimple_stmt_1
   
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221120/work/gcc-13-20221120/gcc/cfgexpand.cc:3983
0xa0eac0 expand_gimple_stmt
   
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221120/work/gcc-13-20221120/gcc/cfgexpand.cc:4044
0xa14e2e expand_gimple_basic_block
   
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221120/work/gcc-13-20221120/gcc/cfgexpand.cc:6096
0xa16817 execute
   
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221120/work/gcc-13-20221120/gcc/cfgexpand.cc:6822

[Bug tree-optimization/107699] [12/13 Regression] False positive -Warray-bounds, non-existent offset reported by GCC

2022-11-22 Thread hp at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107699

Hans-Peter Nilsson  changed:

   What|Removed |Added

 CC||hp at gcc dot gnu.org

--- Comment #3 from Hans-Peter Nilsson  ---
(In reply to Carlos Galvez from comment #2)
> Since the __last iterator cannot be known at compile time, this "if" branch
> must be generated by the compiler. But then std::sort has hardcoded this
> _S_threshold = 16, and computes a pointer __first + 16, which is known to be
> OOB.
> 
> The question is: should the compiler *really* warn in this type of code, in
> -Wall, which is the bare-minimum warning level for all projects?

All analysis of the actual test-case aside, from the setting of "NEW" and "last
confirmed" of the bugzilla entry, the answer is clearly "no". ;-)

I'm not sure it happened this time, but sometimes reporters misinterpret
gcc-folks comments about the bug, to be comments related to the validity of
their test-case, when it's about what gcc did wrong.

[Bug c++/97665] constexpr union array member incorrectly rejected as non-constexpr

2022-11-22 Thread de34 at live dot cn via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97665

Jiang An  changed:

   What|Removed |Added

 CC||de34 at live dot cn

--- Comment #11 from Jiang An  ---
This looks like CWG issue 2558 (currently unresolved).

https://cplusplus.github.io/CWG/issues/2558.html

[Bug lto/107829] New: Trivial compile time tracking code

2022-11-22 Thread fxue at os dot amperecomputing.com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107829

Bug ID: 107829
   Summary: Trivial compile time tracking code
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
  Assignee: unassigned at gcc dot gnu.org
  Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
  Target Milestone: ---

In the function "materialize_cgraph" of lto.cc:


  /* Start the appropriate timer depending on the mode that we are
 operating in.  */
  lto_timer = (flag_wpa) ? TV_WHOPR_WPA
  : (flag_ltrans) ? TV_WHOPR_LTRANS
  : TV_LTO;
  timevar_push (lto_timer);

  current_function_decl = NULL;
  set_cfun (NULL);

  if (!quiet_flag)
fprintf (stderr, "\n");

  timevar_pop (lto_timer);


Execution of code enclosed by time-variable "lto_timer" is expected to be of
zero time. Adding time tracking here seems to be superfluous.

[Bug tree-optimization/107828] New: tree-inlining would generate SSA with incorrect def stmt

2022-11-22 Thread fxue at os dot amperecomputing.com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107828

Bug ID: 107828
   Summary: tree-inlining would generate SSA with incorrect def
stmt
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: fxue at os dot amperecomputing.com
  Target Milestone: ---

In the function "remap_gimple_op_r" of tree-inlining.cc:

  ...

  if (TREE_CODE (*tp) == SSA_NAME)
{
  *tp = remap_ssa_name (*tp, id);
  *walk_subtrees = 0;
  if (is_lhs)
 SSA_NAME_DEF_STMT (*tp) = wi_p->stmt;
  return NULL;
}

The definition statement of original "*tp" may be same as wi_p->stmt. So, we
will end up with a statement that it is pointed by both old and new SSA name,
while the old one should have been reclaimed.

And this happens when some parameter needs to be adjusted during inline
versioning as:

remap_gimple_stmt()

{
  ...
  if (id->param_body_adjs)
{
  ...
  if (!gimple_seq_empty_p (extra_stmts))
{
  memset (, 0, sizeof (wi));
  wi.info = id;
  for (gimple_stmt_iterator egsi = gsi_start (extra_stmts);
   !gsi_end_p (egsi);
   gsi_next ())
walk_gimple_op (gsi_stmt (egsi), remap_gimple_op_r, );
 ^

...
}
}
   ...
}

[Bug d/98058] libphobos: Support building on *-*-darwin*

2022-11-22 Thread vital.had at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98058

Sergey Fedorov  changed:

   What|Removed |Added

 CC||vital.had at gmail dot com

--- Comment #2 from Sergey Fedorov  ---
What is the current status of libphobos on powerpc*-apple-darwin?

[Bug c/107405] [13 Regression] enum change causing Linux kernel to fail to build due to Linux depending on old behavior

2022-11-22 Thread joseph at codesourcery dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107405

--- Comment #19 from joseph at codesourcery dot com  ---
On Tue, 22 Nov 2022, macro at orcam dot me.uk via Gcc-bugs wrote:

> Well, according to the assertion triggered `typeof (EM_MAX_SLOTS)' will
> yield a data type of a different width depending on the compiler version.

I don't think typeof(expression) should really be considered part of the 
ABI.  Technically, yes, someone could declare a variable in a header as 
"extern typeof (EM_MAX_SLOTS) x;", and then the ABI for that variable 
would change.  What hasn't changed is the normal case - where the variable 
is declared as "extern enum whatever_the_tag_is x;" - the size of the enum 
type itself is the same as what it was before.

[Bug analyzer/107788] [13 Regression] ICE in wide_int_to_tree_1, at tree.cc:1757 since r13-4074-g86a90006864840c2

2022-11-22 Thread dmalcolm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107788

David Malcolm  changed:

   What|Removed |Added

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

--- Comment #6 from David Malcolm  ---
(In reply to David Malcolm from comment #4)
> That said, the known_function machinery is erroneously deciding to use the
> "bind" handling even for std::bind, so keeping this open to track only doing
> it for names in the root namespace.

Fixed by the commit in comment #5.

Marking this as resolved.

[Bug analyzer/107783] [13 Regression] ICE in deref_rvalue, at analyzer/region-model.cc:3238 since r13-4074-g86a90006864840c2

2022-11-22 Thread dmalcolm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107783

David Malcolm  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|WAITING |RESOLVED

--- Comment #6 from David Malcolm  ---
I found another ICE with the new "bind"-handling code, which I fixed in the
above commit.

Marking this as resolved.

If you're still running into issues with the "bind"-handling code, please open
separate bugs for them.  Thanks!

[Bug analyzer/107807] gcc.dg/analyzer/errno-1.c FAILs

2022-11-22 Thread dmalcolm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107807

David Malcolm  changed:

   What|Removed |Added

 Status|ASSIGNED|WAITING

--- Comment #5 from David Malcolm  ---
Did the above patch fix things?

[Bug analyzer/107788] [13 Regression] ICE in wide_int_to_tree_1, at tree.cc:1757 since r13-4074-g86a90006864840c2

2022-11-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107788

--- Comment #5 from CVS Commits  ---
The master branch has been updated by David Malcolm :

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

commit r13-4249-gec7c796de020cb5cd955aa5b26c92b1da49d6076
Author: David Malcolm 
Date:   Tue Nov 22 17:29:21 2022 -0500

analyzer: only look for named functions in root ns [PR107788]

gcc/analyzer/ChangeLog:
PR analyzer/107788
* known-function-manager.cc (known_function_manager::get_match):
Don't look up fndecls by name when they're not in the root
namespace.

gcc/testsuite/ChangeLog:
PR analyzer/107788
* g++.dg/analyzer/named-functions.C: New test.

Signed-off-by: David Malcolm 

[Bug analyzer/107807] gcc.dg/analyzer/errno-1.c FAILs

2022-11-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107807

--- Comment #4 from CVS Commits  ---
The master branch has been updated by David Malcolm :

https://gcc.gnu.org/g:7c9717fcb5cf94ce1e7ef5c903058adf9980ff28

commit r13-4247-g7c9717fcb5cf94ce1e7ef5c903058adf9980ff28
Author: David Malcolm 
Date:   Tue Nov 22 17:29:21 2022 -0500

analyzer: fix 'errno' on Solaris and OS X [PR107807]

gcc/analyzer/ChangeLog:
PR analyzer/107807
* region-model-impl-calls.cc (register_known_functions): Register
"___errno" and "__error" as synonyms  for "__errno_location".

gcc/testsuite/ChangeLog:
PR analyzer/107807
* gcc.dg/analyzer/errno-___errno.c: New test.
* gcc.dg/analyzer/errno-__error.c: New test.
* gcc.dg/analyzer/errno-global-var.c: New test.

Signed-off-by: David Malcolm 

[Bug analyzer/107783] [13 Regression] ICE in deref_rvalue, at analyzer/region-model.cc:3238 since r13-4074-g86a90006864840c2

2022-11-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107783

--- Comment #5 from CVS Commits  ---
The master branch has been updated by David Malcolm :

https://gcc.gnu.org/g:64fb291c5839e1a82afb62743172b4eab1267399

commit r13-4248-g64fb291c5839e1a82afb62743172b4eab1267399
Author: David Malcolm 
Date:   Tue Nov 22 17:29:21 2022 -0500

analyzer: fix ICE on 'bind(INT_CST, ...)' [PR107783]

This was crashing inside fd_phase_mismatch's ctor with assertion
failure when the state was "fd-constant".

Fix the ICE by not complaining about constants passed to these APIs.

gcc/analyzer/ChangeLog:
PR analyzer/107783
* sm-fd.cc (fd_state_machine::check_for_new_socket_fd): Don't
complain when old state is "fd-constant".
(fd_state_machine::on_listen): Likewise.
(fd_state_machine::on_accept): Likewise.

gcc/testsuite/ChangeLog:
PR analyzer/107783
* gcc.dg/analyzer/fd-accept.c (test_accept_on_constant): New.
* gcc.dg/analyzer/fd-bind.c (test_bind_on_constant): New.
* gcc.dg/analyzer/fd-connect.c (test_connect_on_constant): New.
* gcc.dg/analyzer/fd-listen.c (test_listen_on_connected_socket):
Fix typo.
(test_listen_on_constant): New.

Signed-off-by: David Malcolm 

[Bug target/107827] switch table compression could shrink large tables (but missing), testcase cerf-lib

2022-11-22 Thread aleks at physik dot tu-berlin.de via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107827

--- Comment #5 from Alexander Kleinsorge  ---
And what about linear equation for same-sized cases (each case has same
code-size). Which should be possible in Case 1 (I think).

[Bug target/107827] switch table compression could shrink large tables (but missing), testcase cerf-lib

2022-11-22 Thread aleks at physik dot tu-berlin.de via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107827

--- Comment #4 from Alexander Kleinsorge  ---
(In reply to Andrew Pinski from comment #2)
> x86_64 target does not dojump table compression at all.
> But aarch64 and arm targets do:
> .L4:
> .2byte  (.L103 - .Lrtx4) / 4
> .2byte  (.L102 - .Lrtx4) / 4
> .2byte  (.L101 - .Lrtx4) / 4
> .2byte  (.L100 - .Lrtx4) / 4
> .2byte  (.L99 - .Lrtx4) / 4
> .2byte  (.L98 - .Lrtx4) / 4
> .2byte  (.L97 - .Lrtx4) / 4
> .2byte  (.L96 - .Lrtx4) / 4
> .2byte  (.L95 - .Lrtx4) / 4
> 
> 
> Confirmed. Note the /4 can't be done for x86 but the rest I think can be
> done. The /4 can't be done because some instructions one byte in length on
> x86_64.

I think by inserting 1 byte NOPs should be possible to get jump-point-alignment
https://www.felixcloutier.com/x86/nop
So the other 1 byte ops could be filled up for alignment.

[Bug target/107827] switch table compression could shrink large tables (but missing), testcase cerf-lib

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107827

--- Comment #3 from Andrew Pinski  ---
Interesting how clang does not do it either for x86_64 but does it also for
aarch64 ...

[Bug target/107827] switch table compression could shrink large tables (but missing), testcase cerf-lib

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107827

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||missed-optimization
  Component|c   |target
 Target||x86_64-*-*
 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1
   Last reconfirmed||2022-11-22

--- Comment #2 from Andrew Pinski  ---
x86_64 target does not dojump table compression at all.
But aarch64 and arm targets do:
.L4:
.2byte  (.L103 - .Lrtx4) / 4
.2byte  (.L102 - .Lrtx4) / 4
.2byte  (.L101 - .Lrtx4) / 4
.2byte  (.L100 - .Lrtx4) / 4
.2byte  (.L99 - .Lrtx4) / 4
.2byte  (.L98 - .Lrtx4) / 4
.2byte  (.L97 - .Lrtx4) / 4
.2byte  (.L96 - .Lrtx4) / 4
.2byte  (.L95 - .Lrtx4) / 4


Confirmed. Note the /4 can't be done for x86 but the rest I think can be done.
The /4 can't be done because some instructions one byte in length on x86_64.

[Bug fortran/107577] [13 Regression] ICE in find_array_spec, at fortran/resolve.cc:5008 since r13-1757-gf838d15641d256e2

2022-11-22 Thread anlauf at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107577

--- Comment #3 from anlauf at gcc dot gnu.org ---
Submitted: https://gcc.gnu.org/pipermail/fortran/2022-November/058549.html

[Bug libstdc++/106201] filesystem::directory_iterator is a borrowable range?

2022-11-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106201

--- Comment #12 from CVS Commits  ---
The releases/gcc-12 branch has been updated by Jonathan Wakely
:

https://gcc.gnu.org/g:477b3f9d58589b3af7a5a7d038d78352ad66406e

commit r12-8927-g477b3f9d58589b3af7a5a7d038d78352ad66406e
Author: Jonathan Wakely 
Date:   Tue Nov 22 18:15:56 2022 +

libstdc++: Add workaround for fs::path constraint recursion [PR106201]

This works around a compiler bug where overload resolution attempts
implicit conversion to path in order to call a function with a path&
parameter. Such conversion would produce a prvalue, which would not be
able to bind to the lvalue reference anyway. Attempting to check the
conversion causes a constraint recursion because the arguments to the
path constructor are checked to see if they're iterators, which checks
if they're swappable, which tries to use the swap function that
triggered the conversion in the first place.

This replaces the swap function with an abbreviated function template
that is constrained with same_as auto& so that the invalid
conversion is never considered.

libstdc++-v3/ChangeLog:

PR libstdc++/106201
* include/bits/fs_path.h (filesystem::swap(path&, path&)):
Replace with abbreviated function template.
* include/experimental/bits/fs_path.h (filesystem::swap):
Likewise.
* testsuite/27_io/filesystem/iterators/106201.cc: New test.
* testsuite/experimental/filesystem/iterators/106201.cc: New test.

[Bug c/107827] switch table compression could shrink large tables (but missing), testcase cerf-lib

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107827

--- Comment #1 from Andrew Pinski  ---
Created attachment 53950
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53950=edit
testcase

[Bug libstdc++/107814] [13 regression] experimental/filesystem/iterators/error_reporting.cc FAILs

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107814

--- Comment #2 from Jonathan Wakely  ---
Created attachment 53949
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53949=edit
Fix unsafe use of dirent::d_name

I'm unable to access the Solaris/x86 host in the compile farm (gcc210) so I
can't test if this fixes it. It passes on Solaris/sparc.

[Bug c/107827] New: switch table compression could shrink large tables (but missing), testcase cerf-lib

2022-11-22 Thread aleks at physik dot tu-berlin.de via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107827

Bug ID: 107827
   Summary: switch table compression could shrink large tables
(but missing), testcase cerf-lib
   Product: gcc
   Version: 12.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: aleks at physik dot tu-berlin.de
  Target Milestone: ---

The cerf-lib (self-contained numeric library that provides an efficient and
accurate implementation of complex error functions) contains 2 switch-blocks
having about 100 entries. Each entry represents a piece-wise
taylor-polynomial-approximation (aiming nearly machine precision, type double).
https://jugit.fz-juelich.de/mlz/libcerf/-/tree/main/lib

Compiler Explorer (selected -O3 for x86-64-gcc-12) https://godbolt.org/
shows ASM output having huge jump-tables. Even code compiles fine on my PC with
gcc11, you have to shrink to 20 cases in Compiler-Explorer to see result (some
webservice limit, but this is not the issue here). Lets focus on 2 static
functions.

1. erfcx.c / static double erfcx_y100() / case (int) 0..99 (100 cases, no gap,
each case is a taylor-polynomial of grade 6). Gives Jump-Table of 100 x 8
bytes, plus code. The table could be easy compressed or replaced by linear
formula.
a) assumning no function ever exceeded 4 GB of code, it would be possible to
use only 4 byte offset (jumping-distance), and for 99% of funtions 65 KB range
would be enough (at least in O2 is makes sence, but also in O3 it could be
faster to decrease memory/cache usage - this could become a new option to
control it).
b) for this erfcx_y100-sample it would be even possible to calc the offset by
formula.
c) of course the parameters could be a separate lookup-table, but no speedup
for other reasons (I tried these days). gcc could detect the similarity
(idential cases beside the 7 hard-coded coefficients) which would be antother
change request..

sample (I cutted the coefficients numbers for readability)
switch ((int) y100) {
  case 0: {
double t = 2*y100 - 1;
return 0.7 + (0.7 + (0.3 + (0.1 + (0.8 + (0.3 + 0.1 * t) *t) *t) *t) *t)
*t;
  }
  case 1: {
double t = 2*y100 - 3;
return 0.2 + (0.7 + (0.3 + (0.1 + (0.8 + (0.3 + 0.1 *t) *t) *t) *t) *t) *t;
  }
 .. until case 99:
  // instead 8 x 100 byte table it could be 2 x 100 byte, or 10 byte linear
equation.

2. im_w_of_x.c / static double w_im_y100() / case (int) 0..96 (97 cases, no
gap, similar polynomials between 6th to 8th grade, plus another unique final
formula). Here the code is (even neglecting the coefficients) not identical,
but still similar. Address-Offset-Compression could still be used (but not
linear all the way).
d) same as a) + b)
e) side note: " 2*y100 " seems no to be detected and calculated once at begin
of switch.
f) detection of similar code (same equation, different parameters) could be
used to decrease object-size (text) as only 4 kinds of equations are here, only
offset in some created "const double parameters[]"-array differs.

PS: no code is wrong or shows different results, this is a
ro-memory-consumption and timing issue only.

Thanks for reading.

[Bug libstdc++/107817] std/format/functions/format.cc etc. FAIL

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107817

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #4 from Jonathan Wakely  ---
Native configuration is sparc-sun-solaris2.11

=== libstdc++ tests ===

Schedule of variations:
unix

Running target unix
Running
/export/home/jwakely/src/gcc/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
...
PASS: std/format/arguments/args.cc (test for excess errors)
PASS: std/format/arguments/args.cc execution test
PASS: std/format/error.cc (test for excess errors)
PASS: std/format/error.cc execution test
PASS: std/format/formatter/concept.cc (test for excess errors)
PASS: std/format/formatter/requirements.cc (test for excess errors)
PASS: std/format/formatter/requirements.cc execution test
PASS: std/format/functions/format.cc (test for excess errors)
PASS: std/format/functions/format.cc execution test
PASS: std/format/functions/format_to_n.cc (test for excess errors)
PASS: std/format/functions/format_to_n.cc execution test
PASS: std/format/functions/size.cc (test for excess errors)
PASS: std/format/functions/size.cc execution test
PASS: std/format/functions/vformat_to.cc (test for excess errors)
PASS: std/format/functions/vformat_to.cc execution test
PASS: std/format/parse_ctx.cc (test for excess errors)
PASS: std/format/parse_ctx.cc execution test
PASS: std/format/string.cc (test for excess errors)
PASS: std/format/string.cc execution test
PASS: std/format/string_neg.cc  (test for errors, line )
PASS: std/format/string_neg.cc (test for excess errors)

=== libstdc++ Summary ===

# of expected passes21

[Bug tree-optimization/107823] [13 Regression] Dead Code Elimination Regression at -Os (trunk vs. 12.2.0)

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107823

Andrew Pinski  changed:

   What|Removed |Added

Summary|Dead Code Elimination   |[13 Regression] Dead Code
   |Regression at -Os (trunk|Elimination Regression at
   |vs. 12.2.0) |-Os (trunk vs. 12.2.0)
   Target Milestone|--- |13.0

[Bug tree-optimization/107822] [13 Regression] Dead Code Elimination Regression at -Os (trunk vs. 12.2.0)

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107822

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |13.0
Summary|Dead Code Elimination   |[13 Regression] Dead Code
   |Regression at -Os (trunk|Elimination Regression at
   |vs. 12.2.0) |-Os (trunk vs. 12.2.0)

[Bug analyzer/106473] [12/13 Regression] -Wanalyzer-malloc-leak false positive regression when returning heap-allocation through nested pointers

2022-11-22 Thread dmalcolm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106473

David Malcolm  changed:

   What|Removed |Added

 Ever confirmed|0   |1
Summary|-Wanalyzer-malloc-leak  |[12/13 Regression]
   |false positive regression   |-Wanalyzer-malloc-leak
   |when returning  |false positive regression
   |heap-allocation through |when returning
   |nested pointers |heap-allocation through
   ||nested pointers
   Last reconfirmed||2022-11-22
 Status|UNCONFIRMED |ASSIGNED

--- Comment #1 from David Malcolm  ---
Thanks for filing this bug.  Confirmed; am investigating.

[Bug fortran/107819] ICE in gfc_check_argument_var_dependency, at fortran/dependency.cc:978

2022-11-22 Thread anlauf at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107819

--- Comment #3 from anlauf at gcc dot gnu.org ---
(In reply to anlauf from comment #2)
> Potential patch:

This regtests ok.

However,

> Note that we get a (correct) warning for z1 after this fix:
> 
> pr107819-z1.f90:4:10-16:
> 
> 4 |   call s (a(n), a)
>   |  2 1
> Warning: INTENT(OUT) actual argument at (1) might interfere with actual
> argument at (2).

this comes from gfc_check_argument_var_dependency, where we see the INTENT(OUT)
argument a, we see a(n), and here

966   /* In case of elemental subroutines, there is no dependency
967  between two same-range array references.  */
968   if (gfc_ref_needs_temporary_p (expr->ref)
969   || gfc_check_dependency (var, expr, elemental ==
NOT_ELEMENTAL))

gfc_ref_needs_temporary_p (expr->ref) correctly returns true.
The comment sort of does not fit to what happens: the "range" is the same,
but n generates a permutation which is detected by gfc_ref_needs_temporary_p.
But then no temporary is generated for a(n), which means we miss a
corresponding check elsewhere.

Could need help by some expert on this...

[Bug tree-optimization/107826] ice during GIMPLE pass: slp

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107826

Andrew Pinski  changed:

   What|Removed |Added

   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=107766

--- Comment #1 from Andrew Pinski  ---
I suspect this is already fixed. See PR 107766 .

[Bug c/107826] New: ice during GIMPLE pass: slp

2022-11-22 Thread dcb314 at hotmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107826

Bug ID: 107826
   Summary: ice during GIMPLE pass: slp
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

For the following reduced C code, compiled as follows:

$ ~/gcc/results/bin/gcc -c -O2 -std=c99 bug864B.c
during GIMPLE pass: slp
bug864B.c:3:1: internal compiler error: Segmentation fault
3 | cpl_image_multiply_scalar_self() {
  | ^~
0xd7e3a9 crash_signal(int)
../../trunk.d1/gcc/toplev.cc:314
0x105cabc contains_struct_check(tree_node*, tree_node_structure_enum, char
const
*, int, char const*)
../../trunk.d1/gcc/tree.h:3645
0x105cabc complex_mul_pattern::matches(_complex_operation, hash_map<_slp_tree*, 
_complex_perm_kinds, simple_hashmap_traits,
_com
plex_perm_kinds> >*, hash_map,
nofree_ptr_h
ash<_slp_tree> >, bool,
simple_hashmap_traits, nofree_ptr_hash<_slp_tree> > >, bool> >*, _slp_tree**,
v
ec<_slp_tree*, va_heap, vl_ptr>*)

C code is:

enum { CPL_TYPE_FLOAT, CPL_TYPE_FLOAT_COMPLEX } __assert_fail;
cpl_image_multiply_scalar_nxy;
cpl_image_multiply_scalar_self() {
  switch (cpl_image_get_type()) {
double *pio;
unsigned long i;
pio[i] *= 0;
  case CPL_TYPE_FLOAT:
for (; cpl_image_multiply_scalar_nxy; i++)
  pio[i] *= 0;
for (; cpl_image_multiply_scalar_nxy;)
case CPL_TYPE_FLOAT_COMPLEX: {
  _Complex *pio = cpl_image_multiply_scalar_self;
  _Complex cscalar = __assert_fail;
  for (;; i++)
pio[i] *= cscalar;
}
  }
}

The code seems to first go wrong sometime between git hash 2b2f2ee49a33419f
and 59cc4da605e5cb8e, a day later.

[Bug c/98487] ICE: tree check: expected identifier_node, have tree_list in is_attribute_p, at attribs.h:155 [C2X or C++11 attribute syntax, gnu::format and -Wsuggest-attribute=format] or a suggest wa

2022-11-22 Thread mpolacek at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98487

Marek Polacek  changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org
 Status|NEW |ASSIGNED
 CC||mpolacek at gcc dot gnu.org

[Bug fortran/107819] ICE in gfc_check_argument_var_dependency, at fortran/dependency.cc:978

2022-11-22 Thread anlauf at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107819

anlauf at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2022-11-22
   Keywords||ice-on-invalid-code,
   ||ice-on-valid-code
 Ever confirmed|0   |1
 CC||anlauf at gcc dot gnu.org

--- Comment #2 from anlauf at gcc dot gnu.org ---
Confirmed.

Potential patch:

diff --git a/gcc/fortran/trans-stmt.cc b/gcc/fortran/trans-stmt.cc
index fd6d294147e..b288f1f9050 100644
--- a/gcc/fortran/trans-stmt.cc
+++ b/gcc/fortran/trans-stmt.cc
@@ -264,6 +264,7 @@ gfc_conv_elemental_dependencies (gfc_se * se, gfc_se *
loopse,
   if (e->expr_type == EXPR_VARIABLE
&& e->rank && fsym
&& fsym->attr.intent != INTENT_IN
+   && !fsym->attr.value
&& gfc_check_fncall_dependency (e, fsym->attr.intent,
sym, arg0, check_variable))
{

Note that we get a (correct) warning for z1 after this fix:

pr107819-z1.f90:4:10-16:

4 |   call s (a(n), a)
  |  2 1
Warning: INTENT(OUT) actual argument at (1) might interfere with actual
argument at (2).

[Bug c/98487] ICE: tree check: expected identifier_node, have tree_list in is_attribute_p, at attribs.h:155 [C2X or C++11 attribute syntax, gnu::format and -Wsuggest-attribute=format] or a suggest wa

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98487

--- Comment #5 from Andrew Pinski  ---
I should note this happens with both front-ends too. though the code is shared
here.

[Bug fortran/107820] ICE in match_mult_operand, at fortran/matchexp.cc:296

2022-11-22 Thread anlauf at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107820

anlauf at gcc dot gnu.org changed:

   What|Removed |Added

   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=107721
 Status|UNCONFIRMED |NEW
 CC||anlauf at gcc dot gnu.org
 Ever confirmed|0   |1
   Last reconfirmed||2022-11-22

--- Comment #1 from anlauf at gcc dot gnu.org ---
Confirmed.

I think this is a dup of pr107721 (lost typespec).

[Bug c/98487] ICE: tree check: expected identifier_node, have tree_list in is_attribute_p, at attribs.h:155 [C2X attribute syntax, gnu::format and -Wsuggest-attribute=format]

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98487

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||diagnostic

--- Comment #4 from Andrew Pinski  ---
Without checking enabled, we get a suggest warning too which is wrong.

[Bug c/107802] -Wsuggest-attribute=format ignores [[gnu::format(...)]]

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107802

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 Status|NEW |RESOLVED

--- Comment #2 from Andrew Pinski  ---
Dup of bug 98487.

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

[Bug c/98487] ICE: tree check: expected identifier_node, have tree_list in is_attribute_p, at attribs.h:155 [C2X attribute syntax, gnu::format and -Wsuggest-attribute=format]

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98487

Andrew Pinski  changed:

   What|Removed |Added

 CC||adam.f.badura at gmail dot com

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

[Bug c++/105593] avx512 math function raises uninitialized variable warning

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105593

Andrew Pinski  changed:

   What|Removed |Added

 CC||bill.trost at harmonicinc dot 
com

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

[Bug c++/107825] uninitialized variable warning in avx512fintrin.h with skylake architecture

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107825

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #2 from Andrew Pinski  ---
Dup of bug 105593.

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

[Bug c/107802] -Wsuggest-attribute=format ignores [[gnu::format(...)]]

2022-11-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107802

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Component|c++ |c
   Keywords||ice-checking,
   ||ice-on-valid-code
   Last reconfirmed||2022-11-22
 Ever confirmed|0   |1

--- Comment #1 from Andrew Pinski  ---
Well Looks like it ICEs on the trunk with -Wsuggest-attribute=format -W -Wall :
```
#include 
 #include 
 #include 

[[gnu::format(printf, 1, 2)]]
void  raise(
 const char* assertionMessage,
 ...) 
 {
 va_list args;
 va_start(args, assertionMessage);
 vfprintf(stderr, assertionMessage, args);
 va_end(args);
 abort();
 }

void f(void)
{
  raise("%s", 1223);
}
```
With both the C and C++ front-ends.

Confirmed.

[Bug tree-optimization/105616] Using regex_replace throws "maybe-uninitialized" warnings with -fsanitize=address

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105616

Jonathan Wakely  changed:

   What|Removed |Added

 CC||bill.trost at harmonicinc dot 
com

--- Comment #4 from Jonathan Wakely  ---
*** Bug 107824 has been marked as a duplicate of this bug. ***

[Bug c++/107824] maybe-uninitialized variable in std::function ctor with -Wall -fsanitize=address when constructing a regex

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107824

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #1 from Jonathan Wakely  ---
dup

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

[Bug c++/107825] uninitialized variable warning in immintrin.h with skylake architecture

2022-11-22 Thread bill.trost at harmonicinc dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107825

Bill T.  changed:

   What|Removed |Added

URL||https://godbolt.org/z/h8v1j
   ||4Gac
 CC||bill.trost at harmonicinc dot 
com

--- Comment #1 from Bill T.  ---
Weirdly, the program seems to compile fine if C is used rather than C++.

[Bug c++/107825] New: uninitialized variable warning in immintrin.h with skylake architecture

2022-11-22 Thread bill.trost at harmonicinc dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107825

Bug ID: 107825
   Summary: uninitialized variable warning in immintrin.h with
skylake architecture
   Product: gcc
   Version: 12.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bill.trost at harmonicinc dot com
  Target Milestone: ---

Created attachment 53948
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53948=edit
Error mesages generated by compiling the program using the indicated flags

The following program generates warnings about uninitialized parameters in
avx512fintrin.h.


#include 

__m512 f(__m512i a)
{
return _mm512_cvtepi32_ps(a);
}

// Compiler used: x86-64 gcc 12.2
// Options used: -O3 -Wall -Werror -march=skylake-avx512


Warnings are attached, but in summary, the value _mm512_undefined_ps() passed
to __builtin_ia32_cvtdq2ps512_mask is deliberately uninitialized.

[Bug fortran/107821] ICE in gfc_conv_scalarized_array_ref, at fortran/trans-array.cc:3723

2022-11-22 Thread anlauf at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107821

anlauf at gcc dot gnu.org changed:

   What|Removed |Added

 CC||anlauf at gcc dot gnu.org
   Last reconfirmed||2022-11-22
 Ever confirmed|0   |1
 Status|UNCONFIRMED |NEW

--- Comment #1 from anlauf at gcc dot gnu.org ---
Confirmed.

Note that I also get an ICE on z0.f90 with gcc <= 12.
So we already got slightly better...

[Bug bootstrap/107722] [13 Regression] Bootstrap failure for some locales starting with r13-4070

2022-11-22 Thread anlauf at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107722

--- Comment #4 from anlauf at gcc dot gnu.org ---
(In reply to Jakub Jelinek from comment #3)
> Created attachment 53942 [details]
> gcc13-pr107722.patch
> 
> So like this?

Yes, this patch makes the compile succeed with my locale.

[Bug c++/107824] New: maybe-uninitialized variable in std::function ctor with -Wall -fsanitize=address when constructing a regex

2022-11-22 Thread bill.trost at harmonicinc dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107824

Bug ID: 107824
   Summary: maybe-uninitialized variable in std::function ctor
with -Wall -fsanitize=address when constructing a
regex
   Product: gcc
   Version: 12.2.0
   URL: https://godbolt.org/z/Phs5rM4xn
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bill.trost at harmonicinc dot com
  Target Milestone: ---
Target: x86-64

Created attachment 53947
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53947=edit
error messages when compiling the program

The code below generates several warning messages when compiled with -Wall and
-fsanitize=address. Without the sanitizer, the code compiles fine.


#include 

void f()
{
std::regex r("");
}
// Options used: -O3 -Wall -Werror -fsanitize=address -std=gnu++2a
// Compiler used: x86-64 gcc 12.2


Warning messages are attached.

[Bug libstdc++/107817] std/format/functions/format.cc etc. FAIL

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107817

--- Comment #3 from Jonathan Wakely  ---
This should be fixed now. I'm doing a Solaris build to check.

[Bug tree-optimization/107823] New: Dead Code Elimination Regression at -Os (trunk vs. 12.2.0)

2022-11-22 Thread yann at ywg dot ch via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107823

Bug ID: 107823
   Summary: Dead Code Elimination Regression at -Os (trunk vs.
12.2.0)
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: yann at ywg dot ch
  Target Milestone: ---

Created attachment 53946
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53946=edit
Code

cat case.c #230633
int a;
void bar64_(void);
void foo();
int main() {
  char b = a = 6;
  for (; a; a = 0) {
bar64_();
b = 0;
  }
  if (b <= 0)
;
  else
foo();
}

`gcc-e4faee8d02ec5d65bf418612f7181823eb08c078 (trunk) -Os` can not eliminate
`foo` but `gcc-releases/gcc-12.2.0 -Os` can.

`gcc-e4faee8d02ec5d65bf418612f7181823eb08c078 (trunk) -Os -S -o /dev/stdout
case.c`
- OUTPUT -
main:
.LFB0:
.cfi_startproc
pushq   %rcx
.cfi_def_cfa_offset 16
movl$6, %eax
movb$6, %dl
.L2:
movl%eax, a(%rip)
testl   %eax, %eax
je  .L10
callbar64_
xorl%eax, %eax
xorl%edx, %edx
jmp .L2
.L10:
testb   %dl, %dl
je  .L4
callfoo
.L4:
xorl%eax, %eax
popq%rdx
.cfi_def_cfa_offset 8
ret
-- END OUTPUT -


`gcc-releases/gcc-12.2.0 -Os -S -o /dev/stdout case.c`
- OUTPUT -
main:
.LFB0:
.cfi_startproc
pushq   %rax
.cfi_def_cfa_offset 16
movl$6, a(%rip)
callbar64_
xorl%edx, %edx
xorl%eax, %eax
movl%edx, a(%rip)
popq%rcx
.cfi_def_cfa_offset 8
ret
-- END OUTPUT -


Bisects to:
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=353fd1ec3df92fbe66ce1513c5a86bdd5c5e22d1

[Bug libstdc++/107817] std/format/functions/format.cc etc. FAIL

2022-11-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107817

--- Comment #2 from CVS Commits  ---
The master branch has been updated by Jonathan Wakely :

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

commit r13-4243-gdfc1ea414e0cebccfcffc771ebcefa3d24c9754c
Author: Jonathan Wakely 
Date:   Tue Nov 22 17:39:43 2022 +

libstdc++: Replace std::isdigit and std::isxdigit in  [PR107817]

These functions aren't usable in constant expressions. Provide our own
implementations, based on __from_chars_alnum_to_val from .

libstdc++-v3/ChangeLog:

PR libstdc++/107817
* include/std/charconv (__from_chars_alnum_to_val): Add
constexpr for C++20.
* include/std/format (__is_digit, __is_xdigit): New functions.
(_Spec::_S_parse_width_or_precision): Use __is_digit.
(__formatter_fp::parse): Use __is_xdigit.

[Bug libstdc++/106201] filesystem::directory_iterator is a borrowable range?

2022-11-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106201

--- Comment #11 from CVS Commits  ---
The master branch has been updated by Jonathan Wakely :

https://gcc.gnu.org/g:6b859736bb1e707778627b2e58ef6088e475a54c

commit r13-4242-g6b859736bb1e707778627b2e58ef6088e475a54c
Author: Jonathan Wakely 
Date:   Tue Nov 22 12:17:27 2022 +

libstdc++: Add testcase for fs::path constraint recursion [PR106201]

libstdc++-v3/ChangeLog:

PR libstdc++/106201
* testsuite/27_io/filesystem/iterators/106201.cc: New test.

[Bug tree-optimization/107822] New: Dead Code Elimination Regression at -Os (trunk vs. 12.2.0)

2022-11-22 Thread yann at ywg dot ch via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107822

Bug ID: 107822
   Summary: Dead Code Elimination Regression at -Os (trunk vs.
12.2.0)
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: yann at ywg dot ch
  Target Milestone: ---

Created attachment 53945
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53945=edit
Code

cat case.c #230636
int b;
void foo();
void(a)();
int main() {
  int c;
  int *d = 
  *d = a && 8;
  b = 0;
  for (; b < 9; ++b)
*d ^= 3;
  if (*d)
;
  else
foo();
}

`gcc-e4faee8d02ec5d65bf418612f7181823eb08c078 (trunk) -Os` can not eliminate
`foo` but `gcc-releases/gcc-12.2.0 -Os` can.

`gcc-e4faee8d02ec5d65bf418612f7181823eb08c078 (trunk) -Os -S -o /dev/stdout
case.c`
- OUTPUT -
main:
.LFB0:
.cfi_startproc
movl$10, %edx
xorl%ecx, %ecx
movl$1, %eax
.L2:
decl%edx
je  .L12
xorl$3, %eax
movb$1, %cl
jmp .L2
.L12:
testb   %cl, %cl
jne .L4
xorl%esi, %esi
movl%esi, b(%rip)
jmp .L5
.L4:
movl$9, b(%rip)
.L5:
testl   %eax, %eax
jne .L8
pushq   %rdx
.cfi_def_cfa_offset 16
callfoo
xorl%eax, %eax
popq%rcx
.cfi_def_cfa_offset 8
ret
.L8:
xorl%eax, %eax
ret
-- END OUTPUT -


`gcc-releases/gcc-12.2.0 -Os -S -o /dev/stdout case.c`
- OUTPUT -
main:
.LFB0:
.cfi_startproc
movl$9, b(%rip)
xorl%eax, %eax
ret
-- END OUTPUT -


Bisects to:
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=e7310e24b1c0ca67b1bb507c1330b2bf39e59e32

[Bug fortran/107821] New: ICE in gfc_conv_scalarized_array_ref, at fortran/trans-array.cc:3723

2022-11-22 Thread gscfq--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107821

Bug ID: 107821
   Summary: ICE in gfc_conv_scalarized_array_ref, at
fortran/trans-array.cc:3723
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gs...@t-online.de
  Target Milestone: ---

Affects versions down to at least r5 :


$ cat z1.f90
program p
   associate (a => 1)
  print *, [character((a(1))) :: '1']
   end associate
end

$ cat z2.f90
program p
   associate (a => 1)
  print *, [character((a((1 :: '1']
   end associate
end

$ cat z3.f90
program p
   associate (a => 1)
  print *, [character(((a(1 :: '1']
   end associate
end

$ cat z0.f90
program p
   associate (a => 1)
  print *, [character(a(1)) :: '1']
   end associate
end


$ gfortran-13-20221120 -c z0.f90
z0.f90:3:26:

3 |   print *, [character(a(1)) :: '1']
  |  1
Error: Scalar INTEGER expression expected at (1)


$ gfortran-13-20221120 -c z1.f90
z1.f90:3:41:

3 |   print *, [character((a(1))) :: '1']
  | 1
internal compiler error: Segmentation fault
0xda0f4f crash_signal
../../gcc/toplev.cc:314
0x87e95a gfc_conv_scalarized_array_ref
../../gcc/fortran/trans-array.cc:3723
0x87f45e gfc_conv_array_ref(gfc_se*, gfc_array_ref*, gfc_expr*, locus*)
../../gcc/fortran/trans-array.cc:3879
0x8ae66e gfc_conv_variable
../../gcc/fortran/trans-expr.cc:3104
0x8aa9ea gfc_conv_expr(gfc_se*, gfc_expr*)
../../gcc/fortran/trans-expr.cc:9469
0x8aaaf6 gfc_conv_expr_op
../../gcc/fortran/trans-expr.cc:3782
0x8aaaf6 gfc_conv_expr(gfc_se*, gfc_expr*)
../../gcc/fortran/trans-expr.cc:9457
0x8ad813 gfc_conv_expr_val(gfc_se*, gfc_expr*)
../../gcc/fortran/trans-expr.cc:9514
0x8ad960 gfc_conv_expr_type(gfc_se*, gfc_expr*, tree_node*)
../../gcc/fortran/trans-expr.cc:9528
0x887e0f trans_array_constructor
../../gcc/fortran/trans-array.cc:2783
0x887e0f gfc_add_loop_ss_code
../../gcc/fortran/trans-array.cc:3181
0x8880f5 gfc_conv_loop_setup(gfc_loopinfo*, locus*)
../../gcc/fortran/trans-array.cc:5478
0x8ddd45 gfc_trans_transfer(gfc_code*)
../../gcc/fortran/trans-io.cc:2671
0x879a37 trans_code
../../gcc/fortran/trans.cc:2170
0x8db6ce build_dt
../../gcc/fortran/trans-io.cc:2051
0x879a17 trans_code
../../gcc/fortran/trans.cc:2142
0x8f71af gfc_trans_block_construct(gfc_code*)
../../gcc/fortran/trans-stmt.cc:2314
0x879917 trans_code
../../gcc/fortran/trans.cc:2046
0x8a2e1e gfc_generate_function_code(gfc_namespace*)
../../gcc/fortran/trans-decl.cc:7674
0x824fae translate_all_program_units
../../gcc/fortran/parse.cc:6696

[Bug fortran/107820] New: ICE in match_mult_operand, at fortran/matchexp.cc:296

2022-11-22 Thread gscfq--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107820

Bug ID: 107820
   Summary: ICE in match_mult_operand, at fortran/matchexp.cc:296
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gs...@t-online.de
  Target Milestone: ---

Affects versions down to at least r5 :


$ cat z1.f90
program p
   print *, [real :: ([3])] ** 20
end

$ cat z2.f90
program p
   print *, [real :: (3)] ** 20
   print *, 3.0 ** 20
end


$ gfortran-13-20221120 z2.f90 && ./a.out
   3.48678451E+09
   3.48678451E+09


$ gfortran-13-20221120 -c z1.f90
z1.f90:2:23:

2 |print *, [real :: ([3])] ** 20
  |   1
Error: Result of exponentiation at (1) exceeds the range of INTEGER(4)
f951: internal compiler error: Segmentation fault
0xf37d3f crash_signal
../../gcc/toplev.cc:314
0x83abfc match_mult_operand
../../gcc/fortran/matchexp.cc:296
0x83ad98 match_add_operand
../../gcc/fortran/matchexp.cc:356
0x83afec match_level_2
../../gcc/fortran/matchexp.cc:480
0x83b142 match_level_3
../../gcc/fortran/matchexp.cc:551
0x83b234 match_level_4
../../gcc/fortran/matchexp.cc:599
0x83b234 match_and_operand
../../gcc/fortran/matchexp.cc:693
0x83b422 match_or_operand
../../gcc/fortran/matchexp.cc:722
0x83b4f2 match_equiv_operand
../../gcc/fortran/matchexp.cc:765
0x83b5c4 match_level_5
../../gcc/fortran/matchexp.cc:811
0x83a991 gfc_match_expr(gfc_expr**)
../../gcc/fortran/matchexp.cc:870
0x822089 match_io_element
../../gcc/fortran/io.cc:3668
0x8249ba match_io_list
../../gcc/fortran/io.cc:3716
0x824dbe match_io
../../gcc/fortran/io.cc:4394
0x8288ba gfc_match_print()
../../gcc/fortran/io.cc:4450
0x85abf1 match_word
../../gcc/fortran/parse.cc:67
0x860853 decode_statement
../../gcc/fortran/parse.cc:539
0x860c8a next_free
../../gcc/fortran/parse.cc:1402
0x860c8a next_statement
../../gcc/fortran/parse.cc:1634
0x863414 parse_spec
../../gcc/fortran/parse.cc:4006

[Bug fortran/107819] ICE in gfc_check_argument_var_dependency, at fortran/dependency.cc:978

2022-11-22 Thread gscfq--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107819

--- Comment #1 from G. Steinmetz  ---

Works here with explicitly enforced evaluation (a(n)) :


$ cat z3.f90
program p
   integer :: a(4) = [-1, -2, -3, -4]
   integer :: n(4) = [4, 2, 1, 3]
   call s ((a(n)), a)
   print *, a
contains
   elemental subroutine s (x, y)
  integer, value :: x
  integer, intent(out) :: y
  y = x
   end
end


$ cat z8.f90
program p
   implicit none
   integer, parameter :: m = 99
   integer :: i
   integer :: a(m) = [(-i,i=1,m)]
   call s ((a(m:1:-1)), a)
   print '(10i6)', a
contains
   elemental subroutine s (x, y)
  integer, value :: x
  integer, intent(out) :: y
  y = x
   end
end


$ cat z9.f90
program p
   implicit none
   integer, parameter :: m = 99
   integer :: i
   integer :: a(m) = [(-i,i=1,m)]
   integer :: n(m) = [(i,i=m,1,-1)]
   call s ([a(n)], a)
   print '(10i6)', a
contains
   elemental subroutine s (x, y)
  integer, value :: x
  integer, intent(out) :: y
  y = x
   end
end


$ gfortran-13-20221120 z3.f90 && ./a.out
  -4  -2  -1  -3
$

[Bug fortran/107819] New: ICE in gfc_check_argument_var_dependency, at fortran/dependency.cc:978

2022-11-22 Thread gscfq--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107819

Bug ID: 107819
   Summary: ICE in gfc_check_argument_var_dependency, at
fortran/dependency.cc:978
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gs...@t-online.de
  Target Milestone: ---

Affects versions down to at least r5 :
(presumably processor dependent)


$ cat z1.f90
program p
   integer :: a(4) = [-1, -2, -3, -4]
   integer :: n(4) = [4, 2, 1, 3]
   call s (a(n), a)
   print *, a
contains
   elemental subroutine s (x, y)
  integer, value :: x
  integer, intent(out) :: y
  y = x
   end
end


$ cat z2.f90
program p
   integer :: a(1) = [-1]
   integer :: n(1) = [1]
   call s (a(n), a)
   print *, a
contains
   elemental subroutine s (x, y)
  integer, value :: x
  integer, intent(out) :: y
  y = x
   end
end


$ cat z6.f90
program p
   integer :: a(1) = [-1]
   integer :: n = 1
   call s (a(n:n), a)
   print *, a
contains
   elemental subroutine s (x, y)
  integer, value :: x
  integer, intent(out) :: y
  y = x
   end
end


$ cat z7.f90
program p
   implicit none
   integer, parameter :: m = 99
   integer :: i
   integer :: a(m) = [(-i,i=1,m)]
   integer :: n(m) = [(i,i=m,1,-1)]
   call s (a(n), a)
   print *, a
contains
   elemental subroutine s (x, y)
  integer, value :: x
  integer, intent(out) :: y
  y = x
   end
end


$ gfortran-13-20221120 -c z1.f90
z1.f90:4:19:

4 |call s (a(n), a)
  |   1
internal compiler error: in gfc_check_argument_var_dependency, at
fortran/dependency.cc:978
0x8add39 gfc_check_argument_var_dependency
../../gcc/fortran/dependency.cc:978
0x8addcc gfc_check_argument_dependency
../../gcc/fortran/dependency.cc:1075
0x8addcc gfc_check_fncall_dependency(gfc_expr*, sym_intent, gfc_symbol*,
gfc_actual_arglist*, gfc_dep_check)
../../gcc/fortran/dependency.cc:1120
0x9640b0 gfc_conv_elemental_dependencies
../../gcc/fortran/trans-stmt.cc:267
0x9640b0 gfc_trans_call(gfc_code*, bool, tree_node*, tree_node*, bool)
../../gcc/fortran/trans-stmt.cc:491
0x8be656 trans_code
../../gcc/fortran/trans.cc:2018
0x8f5379 gfc_generate_function_code(gfc_namespace*)
../../gcc/fortran/trans-decl.cc:7674
0x86775e translate_all_program_units
../../gcc/fortran/parse.cc:6696
0x86775e gfc_parse_file()
../../gcc/fortran/parse.cc:7002
0x8b5a9f gfc_be_parse_file
../../gcc/fortran/f95-lang.cc:229

[Bug ipa/107661] [13 Regression] lambdas get merged incorrectly in tempaltes, cause llvm-12 miscompilation since r13-3358-ge0403e95689af7

2022-11-22 Thread jamborm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107661

Martin Jambor  changed:

   What|Removed |Added

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

--- Comment #17 from Martin Jambor  ---
Fixed.

[Bug ipa/107661] [13 Regression] lambdas get merged incorrectly in tempaltes, cause llvm-12 miscompilation since r13-3358-ge0403e95689af7

2022-11-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107661

--- Comment #16 from CVS Commits  ---
The master branch has been updated by Martin Jambor :

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

commit r13-4238-gc4a92a9117a034e7cf291ae51d8b9b844fb5a88b
Author: Martin Jambor 
Date:   Tue Nov 22 18:22:03 2022 +0100

ipa-cp: Do not be too optimistic about self-recursive edges (PR 107661)

PR 107661 shows that function push_agg_values_for_index_from_edge
should not attempt to optimize self-recursive call graph edges when
called from cgraph_edge_brings_all_agg_vals_for_node.  Unlike when
being called from find_aggregate_values_for_callers_subset, we cannot
expect that any cloning for constants would lead to the edge leading
from a new clone to the same new clone, in this case it would only be
redirected to a new callee.

Fixed by adding a parameter to push_agg_values_from_edge whether being
optimistic about self-recursive edges is possible.

gcc/ChangeLog:

2022-11-22  Martin Jambor  

PR ipa/107661
* ipa-cp.cc (push_agg_values_from_edge): New parameter
optimize_self_recursion, use it to decide whether to pass interim
to
the helper function.
(find_aggregate_values_for_callers_subset): Pass true in the new
parameter of push_agg_values_from_edge.
(cgraph_edge_brings_all_agg_vals_for_node): Pass false in the new
parameter of push_agg_values_from_edge.

gcc/testsuite/ChangeLog:

2022-11-22  Martin Jambor  

PR ipa/107661
* g++.dg/ipa/pr107661.C: New test.

[Bug libstdc++/107815] 20_util/to_chars/float128_c++23.cc FAILs

2022-11-22 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107815

--- Comment #3 from Jakub Jelinek  ---
(In reply to r...@cebitec.uni-bielefeld.de from comment #2)
> > --- Comment #1 from Jakub Jelinek  ---
> > Can you please uncomment the
> > //std::cout << i << ' ' << std::string_view (str1, ptr1) << '\n';
> > and
> > //std::cout << i << ' ' << std::string_view (str1, ptr5) << '\n';
> > lines in the test, so that it is clear at least which test it is on?
> 
> Sure.  This is supposed to print u, I assume ;-)

Oops, sure.
> 
> The line before the assertion failure is
> 
> 1.18973e+4932 1e+4932
> /vol/gcc/src/hg/master/local/libstdc++-v3/testsuite/20_util/to_chars/
> float128_c++23.cc:66: void test(std::chars_format): Assertion 'ec2 ==
> std::errc() && ptr2 - str2 == ptr1 - str1' failed.
> 
> i.e. LDBL_MAX.

This is weird.  If line 66 is reached, fmt must be std::chars_format::fixed
and in that case ptr1 - str1 should be 4933 and str1 should be that many chars
long string starting with
11897314953572317650857593266280070161964690526416940455296988842121635797553123923249740128484620735259020335647491268597552654335738044626726987519452614908534619587250212628458657994054044935746815
If you get just 1e+4932 when asked for fixed format, something is just wrong,
that is scientific or general format.
> 
> > If line 66 fails, it is a fixed printing test trying to verify
> > that the string created by line 60 was actually the minimal.
> 
> It doesn't now reliably: I compiled with -g3 -O0 to be able to check
> things with gdb if needed.
> 
> > On SPARC Solaris, I assume long double is IEEE quad, and it is the shortest
> > version, so should use ryu library for both cases.
> 
> It is, although only ever implemented in software.
> 
> > Line 74 failure is about whether the created string can be read back,
> > in that case for IEEE quad fast_float library can't be used and so it should
> > use newlocale/uselocale/strtold/uselocale/freelocale, or if the OS doesn't
> > support newlocale/uselocale/freelocale most likely just strtod with lost
> > precision (so in that case the test would fail) on line 74.
> 
> I'm not seeing the failure on l.74 any longer, even with the default
> optimization options.  There has been an effort to introduce an xpg7
> locale, but that had quite a number of unresolved issues (both on AIX
> and Solaris) and was never finished.  Currently, we're stuck with
> generic.

[Bug libstdc++/107799] Wrong return type for std::bit_width

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107799

--- Comment #3 from Jonathan Wakely  ---
It will get updated.

[Bug libstdc++/107817] std/format/functions/format.cc etc. FAIL

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107817

Jonathan Wakely  changed:

   What|Removed |Added

 Target|*-*-solaris2.11,|*-*-solaris2.11,
   |x86_64-unknown-freebsd12.4, |x86_64-unknown-freebsd12.4,
   |powerpc64le-unknown-linux-g |
   |nu  |

--- Comment #1 from Jonathan Wakely  ---
(In reply to Rainer Orth from comment #0)
> FreeBSD and (maybe, if that's not an older issue since
> fixed)
> Linux/powerpc64le are equally affected.

Linux/powerpc64le was PR107720 and is unrelated to this.

[Bug libstdc++/107817] std/format/functions/format.cc etc. FAIL

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107817

Jonathan Wakely  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 Status|UNCONFIRMED |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |redi at gcc dot gnu.org
   Last reconfirmed||2022-11-22

[Bug libstdc++/107801] Building cross compiler for H8 family fails in libstdc++ (c++17/memory_resource.cc)

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107801

--- Comment #6 from Jonathan Wakely  ---
Understood, thanks. My commit message could have been worded more precisely,
but none of that matters for the purposes of the fix. What matters is that
there is at least one target with 16-bit int and 32-bit size_t, and after the
commits above, that should be supported.

[Bug libstdc++/107801] Building cross compiler for H8 family fails in libstdc++ (c++17/memory_resource.cc)

2022-11-22 Thread jdx at o2 dot pl via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107801

--- Comment #5 from jdx at o2 dot pl ---
(In reply to CVS Commits from comment #4)
> The releases/gcc-12 branch has been updated by Jonathan Wakely
> :
> 
> https://gcc.gnu.org/g:691012693aaa831e4cd1ab5180195792e32baceb
> 
> commit r12-8926-g691012693aaa831e4cd1ab5180195792e32baceb
> Author: Jonathan Wakely 
> Date:   Tue Nov 22 09:53:36 2022 +
> 
> libstdc++: Fix pool resource build errors for H8 [PR107801]
> 
> The array of pool sizes was previously adjusted to work for msp430-elf
> which has 16-bit int and either 16-bit size_t or 20-bit size_t. The
> largest pool sizes were disabled unless size_t has more than 20 bits.
> 
> The H8 family has 16-bit int but 32-bit size_t, which means that the
> largest sizes are enabled, but 1<<15 produces a negative number that
> then cannot be narrowed to size_t.

Jonathan,
a bit of explanation regarding H8 family – it has a few "subfamilies":

1. H8/300 and H8/300L (L from "low power" AFAIR) – these are pure 16-bit MCUs,
it has 16-bit general purpose registers, sizeof(int) = sizeof(size_t) = 2;
AFAIK they are not manufactured anymore; I have never used any of them.

2. H8/300H, H8S and H8SX – Renesas/Hitachi calls them 16-bit but I call them
quasi 32-bit MCUs because they have 32-bit GPRs and instructions, although data
bus width is 16 bit. Here things are more complicated – sizeof(size_t) = 4 but
sizeof(int) may be  2 or 4 depending on -mint32 command line option. To get
things even more complicated, these MCUs have also so called "normal mode" (-mn
option) – it is compatibility mode with H8/300 and obviously in this mode
sizeof(int) = sizeof(size_t) = 2; __NORMAL_MODE__ macro is defined in this
mode.

[Bug libstdc++/107816] 29_atomics/atomic/compare_exchange_padding.cc etc. FAIL

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107816

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2022-11-22
 Ever confirmed|0   |1

--- Comment #1 from Jonathan Wakely  ---
See https://gcc.gnu.org/pipermail/libstdc++/2022-October/054899.html

There's no portable way to write this test.

[Bug libstdc++/93687] Add mcf thread model to GCC on windows for supporting C++11 std::thread?

2022-11-22 Thread lh_mouse at 126 dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93687

LIU Hao  changed:

   What|Removed |Added

 CC||lh_mouse at 126 dot com

--- Comment #5 from LIU Hao  ---
afaict this can be closed now.

[Bug libstdc++/107784] QOI: sizeof( bind_front( Member-Function ) ) too big

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107784

--- Comment #9 from Jonathan Wakely  ---
I'm not interested in encouraging people to use it, that just makes my job
harder. But if you want to use it, it exists.

[Bug modula2/107233] gm2 build hardcodes python3

2022-11-22 Thread gaius at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107233

--- Comment #3 from Gaius Mulley  ---
ok, thanks for the suggestion.  I've changed gcc/configure.ac to use
AM_PATH_PYTHON and AM_CONDITIONAL:

# Python3?
AM_PATH_PYTHON(,, [:])
AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])

[Bug libstdc++/107815] 20_util/to_chars/float128_c++23.cc FAILs

2022-11-22 Thread ro at CeBiTec dot Uni-Bielefeld.DE via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107815

--- Comment #2 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
> --- Comment #1 from Jakub Jelinek  ---
> Can you please uncomment the
> //std::cout << i << ' ' << std::string_view (str1, ptr1) << '\n';
> and
> //std::cout << i << ' ' << std::string_view (str1, ptr5) << '\n';
> lines in the test, so that it is clear at least which test it is on?

Sure.  This is supposed to print u, I assume ;-)

The line before the assertion failure is

1.18973e+4932 1e+4932
/vol/gcc/src/hg/master/local/libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc:66:
void test(std::chars_format): Assertion 'ec2 == std::errc() && ptr2 - str2 ==
ptr1 - str1' failed.

i.e. LDBL_MAX.

> If line 66 fails, it is a fixed printing test trying to verify
> that the string created by line 60 was actually the minimal.

It doesn't now reliably: I compiled with -g3 -O0 to be able to check
things with gdb if needed.

> On SPARC Solaris, I assume long double is IEEE quad, and it is the shortest
> version, so should use ryu library for both cases.

It is, although only ever implemented in software.

> Line 74 failure is about whether the created string can be read back,
> in that case for IEEE quad fast_float library can't be used and so it should
> use newlocale/uselocale/strtold/uselocale/freelocale, or if the OS doesn't
> support newlocale/uselocale/freelocale most likely just strtod with lost
> precision (so in that case the test would fail) on line 74.

I'm not seeing the failure on l.74 any longer, even with the default
optimization options.  There has been an effort to introduce an xpg7
locale, but that had quite a number of unresolved issues (both on AIX
and Solaris) and was never finished.  Currently, we're stuck with
generic.

[Bug tree-optimization/107808] gcc.dg/vect/vect-bitfield-write-2.c etc.FAIL

2022-11-22 Thread ro at CeBiTec dot Uni-Bielefeld.DE via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107808

--- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
> --- Comment #2 from avieira at gcc dot gnu.org ---
> Hi Rainer,
>
> I suspect this means SPARC should be added to the list of targets that fail
> check_effective_target_vect_long_long. From the dump it looks like the target
> doesn't support a long long vectype.

Just the opposite, I'd say: the list in
check_effective_target_vect_long_long is a positive list of targets
supporting that, so it's fine as is.  However, the affected testcases
don't require that feature, although they depend on it.

[Bug analyzer/107807] gcc.dg/analyzer/errno-1.c FAILs

2022-11-22 Thread dmalcolm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107807

David Malcolm  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2022-11-22

--- Comment #3 from David Malcolm  ---
Thanks; am working on a fix.

[Bug tree-optimization/107818] New: Overflow of linemap breaks its chronological order

2022-11-22 Thread fxue at os dot amperecomputing.com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107818

Bug ID: 107818
   Summary: Overflow of linemap breaks its chronological order
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: fxue at os dot amperecomputing.com
  Target Milestone: ---

Large-size source codes might exceed representation space of linemap. When this
happens, UNKNOWN_LOCATION(0) would inserted to the end of linemap. And the
action breaks the order constraint on the map, which requires all logical
locations contained by it should remain chronologically-ordered, so that binary
search could be used.(Comments in linemap_ordinary_map_lookup).


In the function "linemap_add":

  ...

  if (start_location >= LINE_MAP_MAX_LOCATION)
/* We ran out of line map space.   */
start_location = 0;

  line_map_ordinary *map
= linemap_check_ordinary (new_linemap (set, start_location));
  ^^^
  UNKNOWN_LOCATION(0) is also added to linemap
  map->reason = reason;
  ...


Afterwards, logical location to source line would be mis-translated.

pr86872 only partially fixed see-able ICE due to linemap overflow, but made a
this hidden issue.

[Bug c/107405] [13 Regression] enum change causing Linux kernel to fail to build due to Linux depending on old behavior

2022-11-22 Thread macro at orcam dot me.uk via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107405

--- Comment #18 from Maciej W. Rozycki  ---
Well, according to the assertion triggered `typeof (EM_MAX_SLOTS)' will
yield a data type of a different width depending on the compiler version.
Even if this GNU extension does not constitute a part of the ABI it does
guarantee link incompatibility for a feature we've had for decades now,
even if the old semantics was unintentional.  Data corruption cannot be
ruled out.  Besides, `sizeof (EM_MAX_SLOTS)' can also be used to build a
data type (an array type) and process it.

So I think a pedantic warning is not enough to fulfil the principle of
least surprise for the real world out there.  Therefore I maintain that
for pre-C2x compilations we either need to keep the old semantics,
possibly with a fat warning under `-Wall', or as I say make it a hard
error.

[Bug c++/107781] strchrnul' was not declared in this scope; did you mean 'strchr'? For contracts for canadian compilation

2022-11-22 Thread jason at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107781

Jason Merrill  changed:

   What|Removed |Added

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

--- Comment #8 from Jason Merrill  ---
Fixed.

[Bug c++/107781] strchrnul' was not declared in this scope; did you mean 'strchr'? For contracts for canadian compilation

2022-11-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107781

--- Comment #7 from CVS Commits  ---
The master branch has been updated by Jason Merrill :

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

commit r13-4236-gac5054144bd2248e948842937448eb5f4ce36bfd
Author: Jason Merrill 
Date:   Mon Nov 21 17:42:14 2022 -0500

c++: don't use strchrnul [PR107781]

The contracts implementation was using strchrnul, which is a glibc
extension, so bootstrap broke on non-glibc targets.  Use C89 strcspn
instead.

PR c++/107781

gcc/cp/ChangeLog:

* contracts.cc (role_name_equal): Use strcspn instead
of strchrnul.

[Bug target/107812] [11/12/13 Regression] RTL SSA forwprop introduced regression since r11-6188

2022-11-22 Thread rsandifo at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107812

rsandifo at gcc dot gnu.org  changed:

   What|Removed |Added

   Last reconfirmed||2022-11-22
 Ever confirmed|0   |1
   Assignee|unassigned at gcc dot gnu.org  |rsandifo at gcc dot 
gnu.org
 Status|UNCONFIRMED |ASSIGNED

--- Comment #1 from rsandifo at gcc dot gnu.org  
---
Mine.

[Bug libstdc++/107815] 20_util/to_chars/float128_c++23.cc FAILs

2022-11-22 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107815

--- Comment #1 from Jakub Jelinek  ---
Can you please uncomment the
//std::cout << i << ' ' << std::string_view (str1, ptr1) << '\n';
and
//std::cout << i << ' ' << std::string_view (str1, ptr5) << '\n';
lines in the test, so that it is clear at least which test it is on?
If line 66 fails, it is a fixed printing test trying to verify
that the string created by line 60 was actually the minimal.
On SPARC Solaris, I assume long double is IEEE quad, and it is the shortest
version, so should use ryu library for both cases.
Line 74 failure is about whether the created string can be read back,
in that case for IEEE quad fast_float library can't be used and so it should
use newlocale/uselocale/strtold/uselocale/freelocale, or if the OS doesn't
support newlocale/uselocale/freelocale most likely just strtod with lost
precision (so in that case the test would fail) on line 74.

[Bug ipa/107661] [13 Regression] lambdas get merged incorrectly in tempaltes, cause llvm-12 miscompilation since r13-3358-ge0403e95689af7

2022-11-22 Thread jamborm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107661

--- Comment #15 from Martin Jambor  ---
I have proposed a patch on the mailing list: 
https://gcc.gnu.org/pipermail/gcc-patches/2022-November/607017.html

[Bug libstdc++/107784] QOI: sizeof( bind_front( Member-Function ) ) too big

2022-11-22 Thread joerg.richter--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107784

--- Comment #8 from Jörg Richter  ---
To be honest, I can't tell from the description that this option unlocks a 
libstdc++ that makes no allowance for ABI incompatibilities.

If you had a libstdc++ that didn't care about the ABI, similar to boost, 
this would hopefully attract more contributors and you would have something 
ready to go if an ABI break does happen. 

If you advertise such a mode in the release notes, it will surely be used by 
more than a handful of users.

[Bug libstdc++/107817] std/format/functions/format.cc etc. FAIL

2022-11-22 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107817

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |13.0

[Bug libstdc++/107817] New: std/format/functions/format.cc etc. FAIL

2022-11-22 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107817

Bug ID: 107817
   Summary: std/format/functions/format.cc etc. FAIL
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ro at gcc dot gnu.org
  Target Milestone: ---
Target: *-*-solaris2.11, x86_64-unknown-freebsd12.4,
powerpc64le-unknown-linux-gnu

The std/format/functions/format.cc and std/format/functions/format_to_n.cc
tests FAIL on Solaris (32 and 64-bit, sparc and x86):

+FAIL: std/format/functions/format.cc (test for excess errors)
+UNRESOLVED: std/format/functions/format.cc compilation failed to produce
executable

Excess errors:
/var/gcc/regression/master/11.4-gcc-gas/build/i386-pc-solaris2.11/libstdc++-v3/include/format:508:
error: 'static constexpr std::__format::_Spec<_CharT>::iterator
std::__format::_Spec<_CharT>::_S_parse_width_or_precision(iterator, iterator,
short unsigned int&, bool&, std::basic_format_parse_context<_CharT>&) [with
_CharT = char; iterator = const char*]' called in a constant expression
/var/gcc/regression/master/11.4-gcc-gas/build/i386-pc-solaris2.11/libstdc++-v3/include/format:468:
error: call to non-'constexpr' function 'int std::isdigit(int)'
/var/gcc/regression/master/11.4-gcc-gas/build/i386-pc-solaris2.11/libstdc++-v3/include/format:508:
error: 'static constexpr std::__format::_Spec<_CharT>::iterator
std::__format::_Spec<_CharT>::_S_parse_width_or_precision(iterator, iterator,
short unsigned int&, bool&, std::basic_format_parse_context<_CharT>&) [with
_CharT = char; iterator = const char*]' called in a constant expression
/var/gcc/regression/master/11.4-gcc-gas/build/i386-pc-solaris2.11/libstdc++-v3/include/format:508:
error: 'static constexpr std::__format::_Spec<_CharT>::iterator
std::__format::_Spec<_CharT>::_S_parse_width_or_precision(iterator, iterator,
short unsigned int&, bool&, std::basic_format_parse_context<_CharT>&) [with
_CharT = char; iterator = const char*]' called in a constant expression

  and many more

+FAIL: std/format/functions/format_to_n.cc (test for excess errors)
+UNRESOLVED: std/format/functions/format_to_n.cc compilation failed to produce
executable

Excess errors:
/var/gcc/regression/master/11.4-gcc-gas/build/i386-pc-solaris2.11/libstdc++-v3/include/format:508:
error: 'static constexpr std::__format::_Spec<_CharT>::iterator
std::__format::_Spec<_CharT>::_S_parse_width_or_precision(iterator, iterator,
short unsigned int&, bool&, std::basic_format_parse_context<_CharT>&) [with
_CharT = char; iterator = const char*]' called in a constant expression
/var/gcc/regression/master/11.4-gcc-gas/build/i386-pc-solaris2.11/libstdc++-v3/include/format:468:
error: call to non-'constexpr' function 'int std::isdigit(int)'
/var/gcc/regression/master/11.4-gcc-gas/build/i386-pc-solaris2.11/libstdc++-v3/include/format:508:
error: 'static constexpr std::__format::_Spec<_CharT>::iterator
std::__format::_Spec<_CharT>::_S_parse_width_or_precision(iterator, iterator,
short unsigned int&, bool&, std::basic_format_parse_context<_CharT>&) [with
_CharT = wchar_t; iterator = const wchar_t*]' called in a constant expression

  and many more

since 20221114.  FreeBSD and (maybe, if that's not an older issue since fixed)
Linux/powerpc64le are equally affected.

[Bug libstdc++/107816] 29_atomics/atomic/compare_exchange_padding.cc etc. FAIL

2022-11-22 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107816

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |13.0

[Bug libstdc++/107816] New: 29_atomics/atomic/compare_exchange_padding.cc etc. FAIL

2022-11-22 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107816

Bug ID: 107816
   Summary: 29_atomics/atomic/compare_exchange_padding.cc etc.
FAIL
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ro at gcc dot gnu.org
  Target Milestone: ---
Target: sparc*-sun-solaris2.11, riscv64-suse-linux-gnu,
powerpc-ibm-aix7.2.5.0

The 29_atomics/atomic/compare_exchange_padding.cc and
29_atomics/atomic_ref/compare_exchange_padding.cc tests FAIL on 64-bit
Solaris/SPARC since 20220909:

+FAIL: 29_atomics/atomic/compare_exchange_padding.cc execution test
+FAIL: 29_atomics/atomic_ref/compare_exchange_padding.cc execution test

/vol/gcc/src/hg/master/local/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc:29:
int main(): Assertion '!compare_struct(s, ts)' failed.

/vol/gcc/src/hg/master/local/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:31:
int main(): Assertion '!compare_struct(ss, ts)' failed.

There are also reports for Linux/riscv64 and AIX on gcc-testresults.

I vaguely remember having seen this discussed on gcc-patches, but couldn't find
a corresponding PR.

[Bug libstdc++/107815] 20_util/to_chars/float128_c++23.cc FAILs

2022-11-22 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107815

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |13.0

[Bug libstdc++/107815] New: 20_util/to_chars/float128_c++23.cc FAILs

2022-11-22 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107815

Bug ID: 107815
   Summary: 20_util/to_chars/float128_c++23.cc FAILs
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ro at gcc dot gnu.org
CC: jakub at gcc dot gnu.org
  Target Milestone: ---
Target: sparc*-sun-solaris2.11, hppa64-hp-hpux11.11

The 20_util/to_chars/float128_c++23.cc test FAILs on SPARC (32 and 64-bit)
since it was introduced:

+FAIL: 20_util/to_chars/float128_c++23.cc execution test

There are also reports on HP-UX.

The log shows:

/vol/gcc/src/hg/master/local/libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc:66:
void test(std::chars_format): Assertion 'ec2 == std::errc() && ptr2 - str2 ==
ptr1 - str1' failed.

Weirdly, if I recompile the test manually, I get this instead:

/vol/gcc/src/hg/master/local/libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc:74:
void test(std::chars_format): Assertion 'ec4 == std::errc() && ptr4 == ptr1'
failed.

[Bug libstdc++/107814] [13 regression] experimental/filesystem/iterators/error_reporting.cc FAILs

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107814

Jonathan Wakely  changed:

   What|Removed |Added

 Ever confirmed|0   |1
   Last reconfirmed||2022-11-22
 Status|UNCONFIRMED |NEW

--- Comment #1 from Jonathan Wakely  ---
Are you sure this is a regression? Isn't it the same case as PR104731, but that
was only fixed for 27_io/filesystem/iterators/error_reporting.cc and not
experimental/filesystem/iterators/error_reporting.cc ?

[Bug libstdc++/107814] [13 regression] experimental/filesystem/iterators/error_reporting.cc FAILs

2022-11-22 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107814

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |13.0

[Bug c++/107813] Enum with underlying type uint8_t bad promotion for unsigned char

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107813

Jonathan Wakely  changed:

   What|Removed |Added

 Resolution|--- |INVALID
 Status|UNCONFIRMED |RESOLVED

--- Comment #2 from Jonathan Wakely  ---
Reduced:

void f(unsigned char) = delete;
void f(int) { }

enum TEnum: unsigned char {
Kot = 67
};

template void g(const T& t) { f(t); }
template<> void g(const unsigned char&) { }

int main()
{
  g(Kot);
}


This compiles with GCC 9 and not with GCC 10. But GCC 10 is correct, this was
fixed by commit r10-3736-ge295e3d981355c

PR c++/92032 - DR 1601: Promotion of enum with fixed underlying type.

[Bug libstdc++/107814] New: [13 regression] experimental/filesystem/iterators/error_reporting.cc FAILs

2022-11-22 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107814

Bug ID: 107814
   Summary: [13 regression]
experimental/filesystem/iterators/error_reporting.cc
FAILs
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ro at gcc dot gnu.org
  Target Milestone: ---
Target: i386-pc-solaris2.11, amd64-pc-solaris2.11

Since 20221114, experimental/filesystem/iterators/error_reporting.cc FAILs on
Solaris/x86 only, 32 and 64-bit, while SPARC is fine:

FAIL: experimental/filesystem/iterators/error_reporting.cc execution test

/vol/gcc/src/hg/master/local/libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc:112:
void test02(): Assertion 'ec.value() == EIO' failed.

Running the test under truss on i386 vs. sparc shows:

* i386:

380:mkdirat(AT_FDCWD,
"filesystem-test.error_reporting.4042030604.aA7VId/subdir", 0777) = 0
380:openat64(AT_FDCWD, "filesystem-test.error_reporting.4042030604.aA7VId",
O_RDONLY|O_CLOEXEC|O_DIRECTORY) = 3
380:fcntl(3, F_GETFL)   = 8192
FOFFMAX
380:fstatat64(3, NULL, 0xFEFFD8C0, 0)   = 0
380:d=0x04390012 i=2368576 m=0042755 l=3  u=2110  g=4620  sz=3
380:at = Nov 22 14:15:46 MET 2022  [ 1669122946.599365773 ]
380:mt = Nov 22 14:15:46 MET 2022  [ 1669122946.599784611 ]
380:ct = Nov 22 14:15:46 MET 2022  [ 1669122946.599784611 ]
380:bsz=131072 blks=1 fs=zfs
380:llseek(3, 0, SEEK_CUR)  = 0
380:fcntl(3, F_SETFD, 0x0001)   = 0
380:fstatat64(AT_FDCWD,
"filesystem-test.error_reporting.4042030604.aA7VId/su\x01", 0xFEFFD8D0,
AT_SYMLINK_NOFOLLOW) Err#2 ENOENT

* sparc:

14724:  mkdirat(AT_FDCWD,
"filesystem-test.error_reporting.2190730903.bVmlIc/subdir", 0777) = 0
14724:  openat64(AT_FDCWD, "filesystem-test.error_reporting.2190730903.bVmlIc",
O_RDONLY|O_CLOEXEC|O_DIRECTORY) = 3
14724:  fcntl(3, F_GETFL)   = 8192
FOFFMAX
14724:  fstatat64(3, NULL, 0xFFBFE738, 0)   = 0
14724:  d=0x04190013 i=5268679 m=0042755 l=3  u=2110  g=4620  sz=3
14724:  at = Nov 22 14:27:21 MET 2022  [ 1669123641.516468740 ]
14724:  mt = Nov 22 14:27:21 MET 2022  [ 1669123641.516614735 ]
14724:  ct = Nov 22 14:27:21 MET 2022  [ 1669123641.516614735 ]
14724:  bsz=131072 blks=1 fs=zfs
14724:  llseek(3, 0, SEEK_CUR)  = 0
14724:  fcntl(3, F_SETFD, 0x0001)   = 0
14724:  fstatat64(AT_FDCWD,
"filesystem-test.error_reporting.2190730903.bVmlIc/subdir", 0xFFBFE728,
AT_SYMLINK_NOFOLLOW) = 0

I.e. the pathname is somehow corrupted.

[Bug c++/107813] Enum with underlying type uint8_t bad promotion for unsigned char

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107813

--- Comment #1 from Jonathan Wakely  ---
GCC 10 is correct. The template is a exact match for the argument, accepting
any argument type, so the enum should not be converted to unsigned char.

When you call this->o << t then there is no exact match, so an implicit
conversion to unsigned char happens.

[Bug libstdc++/107799] Wrong return type for std::bit_width

2022-11-22 Thread diego at baldassar dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107799

--- Comment #2 from Diego Baldassar  ---
Ah I see, it was a DR. My mistake.

Will we see this updated for GCC 13? Or is it considered a breaking change
that's too late to fix?

[Bug analyzer/107807] gcc.dg/analyzer/errno-1.c FAILs

2022-11-22 Thread ro at CeBiTec dot Uni-Bielefeld.DE via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107807

--- Comment #2 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
> --- Comment #1 from David Malcolm  ---

> I've tested errno-1.c with glibc's errno.h, and with a simple "extern int
> errno;".
>
> What does  look like on your machine?  In particular, how is "errno"
> defined/declared?  Thanks.

It's a bit more complicated here, boiling down to

extern int *___errno(void) __attribute__((__const__));
#define errno (*(___errno()))

You will find something similar e.g. on Mac OS X 10.7, btw.:

extern int * __error(void);
#define errno (*__error())

[Bug libstdc++/107811] libstdc++-v3/src/c++17/floating_from_chars.cc:787:9: error: 'fast_float' has not been declared

2022-11-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107811

--- Comment #2 from Jonathan Wakely  ---
Yes it does

[Bug analyzer/107807] gcc.dg/analyzer/errno-1.c FAILs

2022-11-22 Thread dmalcolm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107807

--- Comment #1 from David Malcolm  ---
Thanks for filing this bug; sorry about the test failures.

I've tested errno-1.c with glibc's errno.h, and with a simple "extern int
errno;".

What does  look like on your machine?  In particular, how is "errno"
defined/declared?  Thanks.

[Bug target/107604] FAIL: gcc.target/aarch64/aapcs64/test_dfp_17.c execution, -O0 fails on aarch64_be

2022-11-22 Thread clyon at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107604

Christophe Lyon  changed:

   What|Removed |Added

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

--- Comment #5 from Christophe Lyon  ---
Fixed.

[Bug tree-optimization/80548] -Wmaybe-uninitialized false positive when an assignment is added

2022-11-22 Thread law at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80548

--- Comment #11 from Jeffrey A. Law  ---
Thanks!  So the change in question improves the decisions in the predicate
analysis code, which can be best thought of as a filter for the false positives
that are still in the IL.

As I said in my previous comment, the best way forward is to get those two new
instances filed as distinct bugs in BZ.

[Bug target/107604] FAIL: gcc.target/aarch64/aapcs64/test_dfp_17.c execution, -O0 fails on aarch64_be

2022-11-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107604

--- Comment #4 from CVS Commits  ---
The master branch has been updated by Christophe Lyon :

https://gcc.gnu.org/g:4eb3a48698b2ca43967a4e7e7cfc0408192e85b2

commit r13-4235-g4eb3a48698b2ca43967a4e7e7cfc0408192e85b2
Author: Christophe Lyon 
Date:   Tue Nov 22 08:33:06 2022 +

aarch64: Fix test_dfp_17.c for big-endian [PR 107604]

gcc.target/aarch64/aapcs64/test_dfp_17.c has been failing on
big-endian, because the _Decimal32 on-stack argument is not padded in
the same direction depending on endianness.

This patch fixes the testcase so that it expects the argument in the
right stack location, similarly to what other tests do in the same
directory.

gcc/testsuite/ChangeLog:

PR target/107604
* gcc.target/aarch64/aapcs64/test_dfp_17.c: Fix for big-endian.

[Bug libstdc++/107811] libstdc++-v3/src/c++17/floating_from_chars.cc:787:9: error: 'fast_float' has not been declared

2022-11-22 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107811

Jakub Jelinek  changed:

   What|Removed |Added

   Target Milestone|--- |13.0

  1   2   >