[Bug fortran/107062] [13 regression] gfortran.dg/ieee/fma_1.f90 fails after r13-2577-g7c4c65d11469d2

2022-10-03 Thread fxcoudert at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107062

--- Comment #5 from Francois-Xavier Coudert  ---
Fixed on trunk:
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=31d7c8bc2630e1b5a35ccce97ac862c4920ba582

[Bug fortran/107062] [13 regression] gfortran.dg/ieee/fma_1.f90 fails after r13-2577-g7c4c65d11469d2

2022-10-03 Thread fxcoudert at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107062

Francois-Xavier Coudert  changed:

   What|Removed |Added

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

--- Comment #6 from Francois-Xavier Coudert  ---
Closing.

[Bug c++/107128] New: armhf: floatn-common.h:214:9: error: multiple types in one declaration

2022-10-03 Thread malat at debian dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107128

Bug ID: 107128
   Summary: armhf: floatn-common.h:214:9: error: multiple types in
one declaration
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: malat at debian dot org
  Target Milestone: ---

Steps:

% cat p.cxx
#include 

int main() { return 0; }

Lead to:

% /usr/lib/gcc-snapshot/bin/g++ -v p.cxx
Using built-in specs.
COLLECT_GCC=/usr/lib/gcc-snapshot/bin/g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc-snapshot/libexec/gcc/arm-linux-gnueabihf/13/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Debian 20221001-1'
--with-bugurl=file:///usr/share/doc/gcc-snapshot/README.Bugs
--enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2
--prefix=/usr/lib/gcc-snapshot --with-gcc-major-version-only --program-prefix=
--enable-shared --enable-linker-build-id --disable-nls --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm
--disable-libquadmath --disable-libquadmath-support --enable-plugin
--with-system-zlib --enable-libphobos-checking=release
--with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch
--disable-sjlj-exceptions --with-arch=armv7-a+fp --with-float=hard
--with-mode=thumb --disable-werror --enable-checking=yes
--build=arm-linux-gnueabihf --host=arm-linux-gnueabihf
--target=arm-linux-gnueabihf
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.0.0 20221001 (experimental) [master r13-3010-g2555071c954]
(Debian 20221001-1)
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc'  '-mfloat-abi=hard'
'-mtls-dialect=gnu' '-mthumb' '-mlibarch=armv7-a+fp' '-march=armv7-a+fp'
'-dumpdir' 'a-'
 /usr/lib/gcc-snapshot/libexec/gcc/arm-linux-gnueabihf/13/cc1plus -quiet -v
-imultilib . -imultiarch arm-linux-gnueabihf -D_GNU_SOURCE p.cxx -quiet
-dumpdir a- -dumpbase p.cxx -dumpbase-ext .cxx -mfloat-abi=hard
-mtls-dialect=gnu -mthumb -mlibarch=armv7-a+fp -march=armv7-a+fp -version -o
/tmp/ccjKJPO9.s
GNU C++17 (Debian 20221001-1) version 13.0.0 20221001 (experimental) [master
r13-3010-g2555071c954] (arm-linux-gnueabihf)
compiled by GNU C version 13.0.0 20221001 (experimental) [master
r13-3010-g2555071c954], GMP version 6.2.1, MPFR version 4.1.0, MPC version
1.2.1, isl version isl-0.25-GMP

GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
ignoring nonexistent directory "/usr/local/include/arm-linux-gnueabihf"
ignoring nonexistent directory
"/usr/lib/gcc-snapshot/lib/gcc/arm-linux-gnueabihf/13/include-fixed/arm-linux-gnueabihf"
ignoring nonexistent directory
"/usr/lib/gcc-snapshot/lib/gcc/arm-linux-gnueabihf/13/include-fixed"
ignoring nonexistent directory
"/usr/lib/gcc-snapshot/lib/gcc/arm-linux-gnueabihf/13/../../../../arm-linux-gnueabihf/include"
#include "..." search starts here:
#include <...> search starts here:

/usr/lib/gcc-snapshot/lib/gcc/arm-linux-gnueabihf/13/../../../../include/c++/13

/usr/lib/gcc-snapshot/lib/gcc/arm-linux-gnueabihf/13/../../../../include/c++/13/arm-linux-gnueabihf/.

/usr/lib/gcc-snapshot/lib/gcc/arm-linux-gnueabihf/13/../../../../include/c++/13/backward
 /usr/lib/gcc-snapshot/lib/gcc/arm-linux-gnueabihf/13/include
 /usr/local/include
 /usr/lib/gcc-snapshot/include
 /usr/include/arm-linux-gnueabihf
 /usr/include
End of search list.
GNU C++17 (Debian 20221001-1) version 13.0.0 20221001 (experimental) [master
r13-3010-g2555071c954] (arm-linux-gnueabihf)
compiled by GNU C version 13.0.0 20221001 (experimental) [master
r13-3010-g2555071c954], GMP version 6.2.1, MPFR version 4.1.0, MPC version
1.2.1, isl version isl-0.25-GMP

GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: b7ab5fecab0bff7040c765f74b83b0c1
In file included from /usr/include/arm-linux-gnueabihf/bits/floatn.h:52,
 from /usr/include/stdio.h:430,
 from p.cxx:1:
/usr/include/arm-linux-gnueabihf/bits/floatn-common.h:214:9: error: multiple
types in one declaration
  214 | typedef float _Float32;
  | ^
/usr/include/arm-linux-gnueabihf/bits/floatn-common.h:214:15: error:
declaration does not declare anything [-fpermissive]
  214 | typedef float _Float32;
  |   ^~~~
/usr/include/arm-linux-gnueabihf/bits/floatn-common.h:238:14: error: multiple
types in one declaration
  238 | typedef long double _Float64;
  |  ^~
/usr/include/arm-linux-gnueabihf/bits/floatn-common.h:238:21: error:
declaration does not declare anything [-fpermissive]
  238 | typedef long double _Float64;
  | ^~~~
/usr/include/arm-linux-gnueabihf/bits/floatn-common.h:268:9: error: multiple
types in one declaration
  268 | typedef double _Floa

[Bug c++/107128] armhf: floatn-common.h:214:9: error: multiple types in one declaration

2022-10-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107128

Andrew Pinski  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2022-10-03

--- Comment #1 from Andrew Pinski  ---
Is this a packaging issue?
> ignoring nonexistent directory 
> "/usr/lib/gcc-snapshot/lib/gcc/arm-linux-gnueabihf/13/include-fixed/arm-linux-gnueabihf"
ignoring nonexistent directory
"/usr/lib/gcc-snapshot/lib/gcc/arm-linux-gnueabihf/13/include-fixed"

Gcc 13 requires some (older) glibc headers to be fixed up .

[Bug sanitizer/105531] [13 regression] Recent libsanitizer imports breaks Solaris 11.3 build

2022-10-03 Thread ebotcazou at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105531

Eric Botcazou  changed:

   What|Removed |Added

 Resolution|FIXED   |---
 Status|RESOLVED|REOPENED
   Last reconfirmed||2022-10-03
 Ever confirmed|0   |1
 CC||ebotcazou at gcc dot gnu.org

--- Comment #3 from Eric Botcazou  ---
Broken again, but apparently you already fixed it upstream?

[Bug c++/107128] armhf: floatn-common.h:214:9: error: multiple types in one declaration

2022-10-03 Thread malat at debian dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107128

--- Comment #2 from Mathieu Malaterre  ---
> Gcc 13 requires some (older) glibc headers to be fixed up .

I could not reproduce it under my Debian amd64/chroot. I'll check with doko@d.o
then.



Sorry for the noise.

[Bug bootstrap/107119] Bootstrap ICE on 32-bit ARM after r13-2871-g1b74b5cb4e9

2022-10-03 Thread clyon at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107119

Christophe Lyon  changed:

   What|Removed |Added

 CC||clyon at gcc dot gnu.org

--- Comment #3 from Christophe Lyon  ---
It seems bootstrap is working on my side.

[Bug fortran/107071] gfortran.dg/ieee/modes_1.f90 fails on aarch64-linux

2022-10-03 Thread rearnsha at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107071

--- Comment #10 from Richard Earnshaw  ---
That sounds broadly sensible.  One optimization might be to check if the
exception trapping is already enabled, then you can skip the read/set/restore
dance entirely in that case. That might be more efficient on some hardware as
changing the flags might cause a pipeline bubble.

The same is also true for the other tests where you do a read/set/restore
sequence.

[Bug debug/107110] failure (length) with -fcompare-debug at -O1 and above

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107110

Martin Liška  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 CC||marxin at gcc dot gnu.org
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2022-10-03

--- Comment #1 from Martin Liška  ---
Started somewhere between r11-4120-g94fd05f1f76faca9 and
r11-4127-g35f258f4bbba7fa0.

[Bug rtl-optimization/107094] [13 Regression] ICE in require, at machmode.h:297 since r13-2916-gd0b00b63a39108

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107094

Martin Liška  changed:

   What|Removed |Added

 CC||doko at gcc dot gnu.org

--- Comment #2 from Martin Liška  ---
*** Bug 107112 has been marked as a duplicate of this bug. ***

[Bug target/107112] [13 Regression] endless loop building the amdgcn-amdhsa offload compiler

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107112

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org
 Resolution|--- |DUPLICATE
 Status|UNCONFIRMED |RESOLVED

--- Comment #1 from Martin Liška  ---
Dup.

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

[Bug bootstrap/107120] [13 Regression] trunk fails to bootstrap on powerpc64le-linux-gnu

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107120

Martin Liška  changed:

   What|Removed |Added

   Last reconfirmed||2022-10-03
 Status|UNCONFIRMED |WAITING
 CC||marxin at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Martin Liška  ---
Should be fixed with r13-2932-ga5a9237e2a78a9, can you confirm that?

[Bug tree-optimization/107109] [13 Regression] ICE on valid code at -O1 on x86_64-linux-gnu: in type, at value-range.h:621 since r13-2975-g7ea258a13a115e9e

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107109

Martin Liška  changed:

   What|Removed |Added

Summary|ICE on valid code at -O1 on |[13 Regression] ICE on
   |x86_64-linux-gnu: in type,  |valid code at -O1 on
   |at value-range.h:621|x86_64-linux-gnu: in type,
   ||at value-range.h:621 since
   ||r13-2975-g7ea258a13a115e9e
   Target Milestone|--- |13.0
Version|unknown |13.0
 CC||aldyh at gcc dot gnu.org,
   ||amacleod at redhat dot com,
   ||marxin at gcc dot gnu.org
 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1
   Last reconfirmed||2022-10-03

--- Comment #2 from Martin Liška  ---
Started with r13-2975-g7ea258a13a115e9e.

[Bug c/107127] [11/12/13 Regression] Long compile times on code with C complex since r11-3299-gcba079f354a55363

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107127

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1
Summary|[Regression 11/12] Long |[11/12/13 Regression] Long
   |compile times on code with  |compile times on code with
   |C complex   |C complex since
   ||r11-3299-gcba079f354a55363
 CC||marxin at gcc dot gnu.org,
   ||sandra at codesourcery dot com
   Last reconfirmed||2022-10-03

--- Comment #1 from Martin Liška  ---
Started with r11-3299-gcba079f354a55363.
Thanks for the bug report.

[Bug sanitizer/105531] [13 regression] Recent libsanitizer imports breaks Solaris 11.3 build

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105531

--- Comment #4 from Martin Liška  ---
Yes, the change landed to upstream as 3776db9a4fd2080d23d6a5f52e405eea44558761
and thus should be part of what I merged in r13-2269-g600413c4f3d703.

[Bug sanitizer/105531] [13 regression] Recent libsanitizer imports breaks Solaris 11.3 build

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

--- Comment #5 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
> --- Comment #4 from Martin Liška  ---
> Yes, the change landed to upstream as 3776db9a4fd2080d23d6a5f52e405eea44558761
> and thus should be part of what I merged in r13-2269-g600413c4f3d703.

That's the fix for the previous breakage.  The one Eric is alluding to
is https://reviews.llvm.org/D133556
(1cd4d63fb9ab0f04c7151911dde0d58b673823de).  I mean to submit a patch
cherry-picking that one shortly.

[Bug sanitizer/105531] [13 regression] Recent libsanitizer imports breaks Solaris 11.3 build

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105531

--- Comment #6 from Martin Liška  ---
(In reply to r...@cebitec.uni-bielefeld.de from comment #5)
> > --- Comment #4 from Martin Liška  ---
> > Yes, the change landed to upstream as 
> > 3776db9a4fd2080d23d6a5f52e405eea44558761
> > and thus should be part of what I merged in r13-2269-g600413c4f3d703.
> 
> That's the fix for the previous breakage.  The one Eric is alluding to
> is https://reviews.llvm.org/D133556
> (1cd4d63fb9ab0f04c7151911dde0d58b673823de).  I mean to submit a patch
> cherry-picking that one shortly.

Ok, I see. Please commit the change once you send it.

[Bug c++/107126] GCC accepts invalid out of class definition for destructor with C++17

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107126

--- Comment #7 from Jonathan Wakely  ---
https://wg21.link/cwg1435 introduced the wording that allows this (which can
still be seen in the context for the [class.dtor] changes in CWG 2337):

"in a declaration at namespace scope or in a friend declaration, the
id-expression is nested-name-specifier ~class-name and the class-name names the
same class as the nested-name-specifier."

https://wg21.link/p1787r6 changed that to:

"otherwise, the id-expression is nested-name-specifier ~class-name and the
class-name is the injected-class-name of the class nominated by the
nested-name-specifier."

This seems like a breaking change that was not obvious from the revision
history of the r5 paper:

- Required destructor declarations to use the injected-class-name, avoiding
name lookup
- Simplified lookup for destructors
- Specified that < begins a template argument list in a destructor name

All compilers accept the program in C++17 mode, and I don't think it's at all
clear that the code was always invalid in older standards, as you claim.

[Bug c/107127] [11/12/13 Regression] Long compile times on code with C complex since r11-3299-gcba079f354a55363

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107127

--- Comment #2 from Martin Liška  ---
Reduced test-case:

$ cat x.i
int *loopy_kernel_expr9;

void loopy_kernel() {
  _Complex var_e9_11;
  double var_e9_15;
  ;
  ;
  double var_e9_6;
  ;
  loopy_kernel_expr9[0] /
  var_e9_6 *
  (0 - 0 / var_e9_11 + 699.0 + 7.050460596289373 - 286.0 -
   +-4.659839407494593 + 1.5759632377305621 + 0) *
  0 -
  3.287790705257411 + 4.226175928534705 + 0)) *
var_e9_15 +
5.065182909294865) *
   1.2325048646197416 * 0 * 0 -
   8.459732847790127 + 0 + 88.0 + 6.967677749063906 + 867.0 +
   9.104465770830789 - 7.042039895022722 * -1.0);
}

$ time gcc-7 x.i -c

real0m0.028s
user0m0.007s
sys 0m0.021s

$ time gcc-12 x.i -c

real0m1.675s
user0m1.656s
sys 0m0.018s

[Bug sanitizer/105531] [13 regression] Recent libsanitizer imports breaks Solaris 11.3 build

2022-10-03 Thread ebotcazou at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105531

--- Comment #7 from Eric Botcazou  ---
> I mean to submit a patch cherry-picking that one shortly.

OK, thanks in advance.

[Bug fortran/107000] ICE in gfc_real2complex, at fortran/arith.cc:2243

2022-10-03 Thread mikael at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107000

--- Comment #18 from Mikael Morin  ---
(In reply to anlauf from comment #14)
> 
> We could walk through the elements of each array passed to reduce_binary
> and check the types of the elements there, or do this check in a somewhat
> more clever way than in the patch attached to comment#3.
> 
> This patch tried to perform checks in reduce_binary_ac, but I was not happy
> with that particular implementation.
> 
> When looping over the elements, we currently have
> 
>   gfc_simplify_expr (c->expr, 0);
> 
>   if (c->expr->expr_type == EXPR_CONSTANT)
> rc = eval (c->expr, op2, &r);
>   else
>   rc = reduce_binary_ac (eval, c->expr, op2, &r);
> 
> and do not handle the case that c->expr->ts.type == BT_UNKNOWN.
> Should we return sth. like rc = ARITH_INCOMMENSURATE, except that it is
> not array .op. array?

Well, a new return code seems better (ARITH_INVALID_TYPE ?).
I think it's better to move the check to the various gfc_arith_times,
gfc_arith_plus, gfc_arith_concat etc, because only those functions know what
type is appropriate and what is not.
Admittedly BT_UNKNOWN is probably never appropriate, and the check could be
done in reduce_binary_ac, but then it should be in reduce_binary_ca,
reduce_binary_aa and reduce_unary as well.
Then what's missing is a goto runtime in eval_intrinsic if evaluation returns
ARITH_INVALID_TYPE.
That's the first solution.

[Bug c++/107128] armhf: floatn-common.h:214:9: error: multiple types in one declaration

2022-10-03 Thread malat at debian dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107128

--- Comment #3 from Mathieu Malaterre  ---
> some (older) glibc

By older what do you mean exactly ? It seems my system provides glibc 2.35:

malat@amdahl /tmp % apt-cache policy libc6-dev
libc6-dev:
  Installed: 2.35-1
  Candidate: 2.35-1
  Version table:
 *** 2.35-1 500
500 https://deb.debian.org/debian sid/main armhf Packages
100 /var/lib/dpkg/status

[Bug c++/107128] armhf: floatn-common.h:214:9: error: multiple types in one declaration

2022-10-03 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107128

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek  ---
By older in this case is any glibc >= 2.26 and <
https://sourceware.org/git/?p=glibc.git;a=commit;h=3e5760fcb48528d48deeb60cb885a97bb731160c
(i.e. for gcc 13, you can avoid fixincludes only for very old glibc (< 2.26) or
if you have 4 or less days old glibc trunk.

[Bug fortran/107000] ICE in gfc_real2complex, at fortran/arith.cc:2243

2022-10-03 Thread mikael at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107000

--- Comment #19 from Mikael Morin  ---
(In reply to anlauf from comment #17)
> (In reply to anlauf from comment #16)
> > Created attachment 53651 [details]
> > Revised patch
> 
> Unfortunately this regresses on gfortran.dg/pr91552.f90, e.g.
> 
>   print *, 2 * [real :: 1, [2], 3]

Yes, verify_types misses a call to itself for every element that is an array.
I think we should not reject all mismatching types, because there is a call to
gfc_type_convert_binary further down that is able to handle conversions on
numeric types.  Basically all numeric types, even if mismatching, should work.
That's the second solution.

[Bug tree-optimization/107129] New: [13 Regression] False positive -Wstringop-overflow warning with -O2 or -O3

2022-10-03 Thread daniel at constexpr dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107129

Bug ID: 107129
   Summary: [13 Regression] False positive -Wstringop-overflow
warning with -O2 or -O3
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: daniel at constexpr dot org
  Target Milestone: ---

Created attachment 53652
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53652&action=edit
Reduced testcase

The attached testcase produces the following warning with GCC 13.0.0 20221002
(commit 3290dcf):

$ /opt/gcc-dev/bin/c++ -O2 -c test.cpp 
test.cpp: In member function ‘void C::f()’:
test.cpp:39:33: warning: writing 1 byte into a region of size 0
[-Wstringop-overflow=]
   39 | c[i] = e(1.f - i, i);
  |~^~~~
test.cpp:9:23: note: at offset 1 into destination object ‘C4::r’ of size 1
9 | unsigned char r;
  |

[Bug tree-optimization/107129] [13 Regression] False positive -Wstringop-overflow warning with -O2 or -O3 since r13-137-gee1cb43bc76de800

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107129

Martin Liška  changed:

   What|Removed |Added

 Ever confirmed|0   |1
   Last reconfirmed||2022-10-03
Summary|[13 Regression] False   |[13 Regression] False
   |positive|positive
   |-Wstringop-overflow warning |-Wstringop-overflow warning
   |with -O2 or -O3 |with -O2 or -O3 since
   ||r13-137-gee1cb43bc76de800
 Status|UNCONFIRMED |NEW
 CC||marxin at gcc dot gnu.org,
   ||msebor at gcc dot gnu.org,
   ||rguenth at gcc dot gnu.org

--- Comment #1 from Martin Liška  ---
Started with r13-137-gee1cb43bc76de800.

[Bug tree-optimization/107130] New: [13 Regression] wrong code with -Os -fno-tree-ccp -fno-tree-forwprop -fno-tree-fre

2022-10-03 Thread zsojka at seznam dot cz via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107130

Bug ID: 107130
   Summary: [13 Regression] wrong code with -Os -fno-tree-ccp
-fno-tree-forwprop -fno-tree-fre
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: zsojka at seznam dot cz
  Target Milestone: ---
  Host: x86_64-pc-linux-gnu

Created attachment 53653
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53653&action=edit
reduced testcase

Output:
$ x86_64-pc-linux-gnu-gcc -Os -fno-tree-ccp -fno-tree-forwprop -fno-tree-fre
testcase.c
$ ./a.out 
Aborted

The generated code just aborts:
main:
pushrax
callabort


$ x86_64-pc-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest/bin/x86_64-pc-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-r13-3023-20221003092645-g31d7c8bc263-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/13.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--disable-bootstrap --with-cloog --with-ppl --with-isl
--build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu
--target=x86_64-pc-linux-gnu --with-ld=/usr/bin/x86_64-pc-linux-gnu-ld
--with-as=/usr/bin/x86_64-pc-linux-gnu-as --disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-r13-3023-20221003092645-g31d7c8bc263-checking-yes-rtl-df-extra-nobootstrap-amd64
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.0.0 20221003 (experimental) (GCC)

[Bug tree-optimization/107130] [13 Regression] wrong code with -Os -fno-tree-ccp -fno-tree-forwprop -fno-tree-fre since r13-2900-g001c60ccfeaf9a48

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107130

Martin Liška  changed:

   What|Removed |Added

   Last reconfirmed||2022-10-03
 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1
Summary|[13 Regression] wrong code  |[13 Regression] wrong code
   |with -Os -fno-tree-ccp  |with -Os -fno-tree-ccp
   |-fno-tree-forwprop  |-fno-tree-forwprop
   |-fno-tree-fre   |-fno-tree-fre since
   ||r13-2900-g001c60ccfeaf9a48
 CC||aldyh at gcc dot gnu.org,
   ||marxin at gcc dot gnu.org

--- Comment #1 from Martin Liška  ---
Started with r13-2900-g001c60ccfeaf9a48.

[Bug tree-optimization/107130] [13 Regression] wrong code with -Os -fno-tree-ccp -fno-tree-forwprop -fno-tree-fre since r13-2900-g001c60ccfeaf9a48

2022-10-03 Thread zsojka at seznam dot cz via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107130

--- Comment #2 from Zdenek Sojka  ---
(In reply to Martin Liška from comment #1)
> Started with r13-2900-g001c60ccfeaf9a48.

Nice, so ffs() with a propagated constant argument now does a popcount()
instead?

[Bug tree-optimization/107130] [13 Regression] wrong code with -Os -fno-tree-ccp -fno-tree-forwprop -fno-tree-fre since r13-2900-g001c60ccfeaf9a48

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107130

--- Comment #3 from Martin Liška  ---
> Nice, so ffs() with a propagated constant argument now does a popcount()
> instead?

It should not. The problem is op_cfn_popcount is shared by both popcount and
ffs, but the newly added transformation is valid only for popcount.

[Bug tree-optimization/107130] [13 Regression] wrong code with -Os -fno-tree-ccp -fno-tree-forwprop -fno-tree-fre since r13-2900-g001c60ccfeaf9a48

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107130

Martin Liška  changed:

   What|Removed |Added

   Target Milestone|--- |13.0
   Priority|P3  |P1

[Bug libgcc/106949] Memory leak using VLA with -fsplit-stack

2022-10-03 Thread iam at datacompboy dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106949

--- Comment #2 from Anton Fedorov  ---
Created attachment 53654
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53654&action=edit
potential fix

I checked with the HEAD (43faf3e5445b571731e52faa1be085ecd0a09323) and the
issue is still there.

While it's kind of trivial to move the leak from "leak" to "not freed by the
end of the program" with proposed patch to create an empty segment, it doesn't
seems to fix the problem with the approach that there is no way to mark
malloc()'ed alloca()'s in case we are on the main stack segment.

But the problem extends beyond the allocation on the main segment -- no matter
when we enter the some large function that keeps calling the subfunction with
VLA/alloca, the memory will keep growing without collection.

For example, if we'll call leak function in a loop (imagine we run even
processing loop, network processing loop etc etc that calls some handler that
have alloca/VLA), the memory will grow without any way to free it.

```
static int leak(int s) {
  volatile int n[5000+s];

  for (int i = 0; i < s; i++) {
n[i] = 0;
  }
  return -1;
}
int main() {
  int a = leak(1); a += a;
  for(int i = 0; i < 1; ++i)
a += leak(i+1);
  return 0;
}
```

I see the option to generate code to explicitly move N (number of calls to
__morestack_allocate_stack_space in the function) first dynamic_allocation
elements to free_dynamic_allocation list before execution return -- at cost of
extra check & jmp for case when stack is sufficient.

Given that -fsplit-stack accepts extra cost for stack guarantees -- this extra
cost for avoiding memory leak should be fine?

[Bug sanitizer/105531] [13 regression] Recent libsanitizer imports breaks Solaris 11.3 build

2022-10-03 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105531

Rainer Orth  changed:

   What|Removed |Added

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

--- Comment #8 from Rainer Orth  ---
Done now, however this wasn't somehow picked up in the PR.

[Bug bootstrap/107119] Bootstrap ICE on 32-bit ARM after r13-2871-g1b74b5cb4e9

2022-10-03 Thread mkuvyrkov at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107119

Maxim Kuvyrkov  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|UNCONFIRMED |RESOLVED

--- Comment #4 from Maxim Kuvyrkov  ---
(In reply to Jeffrey A. Law from comment #2)
> Does it still happen after this:
> Author: Jeff Law 
> Date:   Tue Sep 27 01:44:38 2022 -0400
> 
> Fix ICEs due to recent jump-to-return optimization
> 
> gcc/
> * cfgrtl.cc (fixup_reorder_chain): Verify that simple_return
> and return are available before trying to use them.

After this commit the bootstrap still failed, but something from the below
committed on September 29th fixed it:
ada: Fix checking of Refined_State with nested package renamings (detail)
ada: Improve efficiency of slice-of-component assignment (detail)
ada: Further tweak new expansion of contracts (detail)
ada: Remove duplicated doc comment section (detail)
support -gz=zstd for both linker and assembler (detail)
driver, cppdefault: Unbreak bootstrap on Debian/Ubuntu [PR107059] (detail)
Add OPTIONS_H_EXTRA to GTFILES (detail)
aarch64: Rename AARCH64_ISA architecture-level macros (detail)
aarch64: Rename AARCH64_FL architecture-level macros (detail)
aarch64: Rename AARCH64_FL_FOR_ARCH macros (detail)
aarch64: Add "V" to aarch64-arches.def names (detail)
aarch64: Small config.gcc cleanups (detail)
aarch64: Avoid redundancy in aarch64-cores.def (detail)
aarch64: Remove AARCH64_FL_RCPC8_4 [PR107025] (detail)
aarch64: Fix transitive closure of features (detail)
aarch64: Reorder an entry in aarch64-option-extensions.def (detail)
aarch64: Simplify feature definitions (detail)
aarch64: Simplify generation of .arch strings (detail)
aarch64: Avoid std::string in static data (detail)
aarch64: Tweak constness of option-related data (detail)
aarch64: Make more use of aarch64_feature_flags (detail)
aarch64: Tweak contents of flags_on/off fields (detail)
aarch64: Tweak handling of -mgeneral-regs-only (detail)
aarch64: Remove redundant TARGET_* checks (detail)
data-ref: Fix ranges_maybe_overlap_p test (detail)
place `const volatile' objects in read-only sections (detail)
c++: import/export NTTP objects (detail)
libstdc++: Guard use of new built-in with __has_builtin (detail)
c++: introduce TRAIT_TYPE alongside TRAIT_EXPR (detail)
c++: implement __remove_cv, __remove_reference and __remove_cvref (detail)
OpenACC: whole struct vs. component mappings (PR107028) (detail)

[Bug target/107131] New: wrong code with -Os -fno-ipa-vrp -fno-tree-bit-ccp

2022-10-03 Thread zsojka at seznam dot cz via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107131

Bug ID: 107131
   Summary: wrong code with -Os -fno-ipa-vrp -fno-tree-bit-ccp
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: zsojka at seznam dot cz
  Target Milestone: ---
  Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu

Created attachment 53655
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53655&action=edit
reduced testcase

Output:
$ x86_64-pc-linux-gnu-gcc -Os -fno-ipa-vrp -fno-tree-bit-ccp testcase.c
-Wno-psabi
$ ./a.out 
Aborted

$ x86_64-pc-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest/bin/x86_64-pc-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-r13-3023-20221003092645-g31d7c8bc263-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/13.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--disable-bootstrap --with-cloog --with-ppl --with-isl
--build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu
--target=x86_64-pc-linux-gnu --with-ld=/usr/bin/x86_64-pc-linux-gnu-ld
--with-as=/usr/bin/x86_64-pc-linux-gnu-as --disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-r13-3023-20221003092645-g31d7c8bc263-checking-yes-rtl-df-extra-nobootstrap-amd64
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.0.0 20221003 (experimental) (GCC)

[Bug c++/107118] "does not name a type" when used in constrained struct specialization

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107118

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1
   Last reconfirmed||2022-10-03
   Keywords||rejects-valid

[Bug c++/96830] GCC does not complain about redeclaration with inconsistent requires clause

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96830

--- Comment #10 from Jonathan Wakely  ---
(In reply to Jonathan Wakely from comment #9)
> Reduced to show Clang's confusion: https://godbolt.org/z/E1Kq4Gfed

Reported as https://github.com/llvm/llvm-project/issues/58124

[Bug sanitizer/105531] [13 regression] Recent libsanitizer imports breaks Solaris 11.3 build

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105531

--- Comment #9 from Martin Liška  ---
I can't see the commit in git history, have you pushed the revision?

[Bug sanitizer/105531] [13 regression] Recent libsanitizer imports breaks Solaris 11.3 build

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105531

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #10 from Martin Liška  ---
Openning..

[Bug tree-optimization/107109] [13 Regression] ICE on valid code at -O1 on x86_64-linux-gnu: in type, at value-range.h:621 since r13-2975-g7ea258a13a115e9e

2022-10-03 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107109

--- Comment #3 from CVS Commits  ---
The master branch has been updated by Andrew Macleod :

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

commit r13-3031-gf41d1b39a6443fad38c36af34b1baa384954ca80
Author: Andrew MacLeod 
Date:   Sun Oct 2 18:43:35 2022 -0400

Don't process undefined range.

No need to continue processing an undefined range.

gcc/
PR tree-optimization/107109
* range-op.cc (adjust_op1_for_overflow): Don't process undefined.
gcc/testsuite/
* gcc.dg/pr107109.c: New.

[Bug c++/107132] New: a temporary object with an x-value is not destroyed and is bound to a variable

2022-10-03 Thread lisp2d at rambler dot ru via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107132

Bug ID: 107132
   Summary: a temporary object with an x-value is not destroyed
and is bound to a variable
   Product: gcc
   Version: 12.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: lisp2d at rambler dot ru
  Target Milestone: ---

a temporary object with an x-value is not destroyed and is bound to a variable

the question is taken from a social network
https://ru.stackoverflow.com/questions/1450260/Продление-времени-жизни-временного-объекта-в-присваивании/1450517#1450517

with tests
https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIApACYAQuYukl9ZATwDKjdAGFUtAK4sGISQBspK4AMngMmAByPgBGmMQgAJykAA6oCoRODB7evv5BaRmOAmER0SxxCcl2mA5ZQgRMxAQ5Pn6Btpj2xQwNTQSlUbHxSbaNza15HQrjA%2BFDFSOJAJS2qF7EyOwc5gDM4cjeWADUJrtuTjPEmKxn2CYaAIIPj%2BEEx1hXXnUCCmdWTy%2BDmOj1OAHYLMcAH6PCDLY4MVCYVRbFLvEwQ06WayfAjEb49P67SEYgAi4NJ/xeLzexxYTHCcPBANBzJexw5xzQDBmIPMAWOTFOu3JzwhZOFooxVjBlOJ7M5M3QIBQ63R5zObixZlJmCBhOO4WOCjQKXYnI55jMwrcmo%2BerxBKyChtdrAOwArG4GO6qU8Lbj8T8eZLjho/ayyQqlSq0F51bbztrdfrncc1emqMbTeara6k4Gnb981rfV6fTt5U8yRxVrROB7eH4OFpSKhOLbsZZjetNpgsbseKQCJpa6sANb%2BRIAOkkc40AA4uBpEguwR6wbsgvWOJIm6O25xeAoQBph6PVnBYDBECBkbV4yRyJQmsAFMpDF0hAhUAB3ZtDmgLApHQTA9B%2BES0N%2Bf4AbwQEgfQCTAFwZhmKQ8F0PEADy8bQf%2BnBDveyCPMQb5HsEqi1A0%2BDNrw/CCCIYjsFIMiCIoKjqC2Oh6AYRgoNY1j6HgMQnpAqyoGizqcAAtEqZykqYXYWGYrYKL2Wx6Eq4QQV%2BP74dwvB4pg2xDr%2BxBMCkBG1voDb7lxh4cNglHII%2BxDHKoC4BNJASSMcwDIMgxwodO1oQJ2ViWKQxy4IQJADlwyyGReqwIDcWAJHCNm7rwLAgLsuzTokGiBIkuylQEGgelwVUeqQzatu2HDHqe55cZeN4QEgRGuc%2BECvu%2Bn5QXpsHoagwGgeBg14SNGGISgvHAAA%2Bo6DDjqN42IThwjDVZFG1CRZFNXtyDUeE5H0cIojiCxF3sWoB66GhC38UpQkifA4mSb8MlySKikRcpqnqcxYw0TpQ0wbtRkmbwZkWVZda2XVB6NU5D5EG5HleT5XILccEAreO8JhQJkXRfgGPxYlrVaMsKVpSMmU7nupC5YOs5gmYYJcFwARgpViQBLs0j1bwjXNWeI5taQV63t1GO9f14PTbts1gVkys7QZ60ISMABuyApCki161wiSLQYBAOotqg%2BTrmHEFtKva0RB0nkdRGnbRrGXUxEjSLdSj3fZui7PohjGKTNi0MJomZRJhKcAA9DG/3WCpx7A5pBBg1NWtDtDu1w5ZBmIxwjbI/ZqPOa57k4ywCgG8cpszpbDr4%2BFgnk7Fbl7AlSVtfTTDpZQZcs2zkjTgEqEeokkhlflHpmFItWiw5Es02OpCTh6GjTh6B%2BJFwC5FShkhmAEtU7rsdkNeRUu02XZi32L9/JaQevxBkziSEAA%3D

#include 

int destructions;
struct A { ~A() noexcept { ++destructions; } };

int main() {
  {
const A& a = A{} = A{};
std::cout << "Destructions in scope: " << destructions << '\n';
destructions = 0;
  }
  std::cout << "Destructions out of scope: " << destructions << '\n';
}

the object under variable a should be dead. But it's still alive.

[Bug tree-optimization/107109] [13 Regression] ICE on valid code at -O1 on x86_64-linux-gnu: in type, at value-range.h:621 since r13-2975-g7ea258a13a115e9e

2022-10-03 Thread amacleod at redhat dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107109

Andrew Macleod  changed:

   What|Removed |Added

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

--- Comment #4 from Andrew Macleod  ---
fixed.

[Bug c++/107126] -Wc++20-compat should complain about template-id in out of class definition for destructor

2022-10-03 Thread jason at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107126

Jason Merrill  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1
 CC||jason at gcc dot gnu.org
Summary|GCC accepts invalid out of  |-Wc++20-compat should
   |class definition for|complain about template-id
   |destructor with C++17   |in out of class definition
   ||for destructor
   Last reconfirmed||2022-10-03

--- Comment #8 from Jason Merrill  ---
As Jonathan documents, this was explicitly well-formed from DR1435 in C++11
until P1787 in C++23.  It seems reasonable to also apply the P1787 change to
C++20, treating it as a missing piece of the DR2237 resolution.  It seems
undesirable to apply it to C++17 as well.

But it would be helpful for -Wc++20-compat to flag this compatibility issue

Incidentally, we should probably also reduce the C++20 error to a pedwarn.

[Bug sanitizer/105531] [13 regression] Recent libsanitizer imports breaks Solaris 11.3 build

2022-10-03 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105531

--- Comment #11 from CVS Commits  ---
The master branch has been updated by Rainer Orth :

https://gcc.gnu.org/g:77d0627c244f7520bf74ec9cf2a8b69c32b6d30d

commit r13-3033-g77d0627c244f7520bf74ec9cf2a8b69c32b6d30d
Author: Rainer Orth 
Date:   Mon Oct 3 16:28:46 2022 +0200

libsanitizer: Fix Solaris 11.3 compilation of
sanitizer_procmaps_solaris.cpp [PR105531]

The latest libsanitizer import broke Solaris 11.3 bootstrap again, due
to an oversight of mine.  A fix has been committed upstream

https://reviews.llvm.org/D133556

This patch cherry-picks it.  Tested on Solaris 11.3 and 11.4, SPARC and
x86.

2022-09-23  Rainer Orth  

libsanitizer:
PR sanitizer/105531
* sanitizer_common/sanitizer_procmaps_solaris.cpp: Cherry-pick
llvm-project revision 1cd4d63fb9ab0f04c7151911dde0d58b673823de.

[Bug sanitizer/105531] [13 regression] Recent libsanitizer imports breaks Solaris 11.3 build

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

--- Comment #12 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
> --- Comment #9 from Martin Liška  ---
> I can't see the commit in git history, have you pushed the revision?

I hadn't.  Seems I shouldn't work on a holiday ;-)

[Bug sanitizer/105531] [13 regression] Recent libsanitizer imports breaks Solaris 11.3 build

2022-10-03 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105531

Rainer Orth  changed:

   What|Removed |Added

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

--- Comment #13 from Rainer Orth  ---
Fixed for real now.

[Bug libstdc++/103626] _GLIBCXX_HOSTED should respect -ffreestanding

2022-10-03 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103626

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

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

commit r13-3034-gf1b51f68f8ac6c63e352dda8599aed01634212de
Author: Jonathan Wakely 
Date:   Tue Sep 20 11:57:28 2022 +0100

libstdc++: Make _GLIBCXX_HOSTED respect -ffreestanding [PR103626]

This allows the library to switch to freestanding mode when compiling
with the -ffreestanding flag. This means you don't need a separate
libstdc++ build configured with --disable-hosted-libstdcxx in order to
compile for a freestanding environment.

The testsuite support files cannot be compiled for freestanding, so add
-fno-freestanding to override any -ffreestanding in the test flags.

libstdc++-v3/ChangeLog:

PR libstdc++/103626
* acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED
to __STDC_HOSTED__ for non-freestanding installations.
* configure: Regenerate.
* include/Makefile.am (${host_builddir}/c++config.h): Adjust
grep pattern.
* include/Makefile.in: Regenerate.
* testsuite/lib/libstdc++.exp (v3-build_support): Use
-fno-freestanding.
* testsuite/libstdc++-abi/abi.exp: Likewise.

[Bug libstdc++/103626] _GLIBCXX_HOSTED should respect -ffreestanding

2022-10-03 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103626

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

https://gcc.gnu.org/g:18f176d0b25591e2880bc5ef453ce0834f9e0e2a

commit r13-3037-g18f176d0b25591e2880bc5ef453ce0834f9e0e2a
Author: Arsen ArsenoviÄ 
Date:   Mon Sep 19 21:54:49 2022 +0200

libstdc++: Mark headers that must be hosted as such [PR103626]

PR libstdc++/103626 - _GLIBCXX_HOSTED should respect -ffreestanding

Co-authored-by: Jonathan Wakely 

libstdc++-v3/ChangeLog:

PR libstdc++/103626
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/bits/requires_hosted.h: New header.
* include/experimental/algorithm: Include
.
* include/experimental/any: Likewise.
* include/experimental/array: Likewise.
* include/experimental/buffer: Likewise.
* include/experimental/chrono: Likewise.
* include/experimental/deque: Likewise.
* include/experimental/executor: Likewise.
* include/experimental/filesystem: Likewise.
* include/experimental/forward_list: Likewise.
* include/experimental/functional: Likewise.
* include/experimental/internet: Likewise.
* include/experimental/io_context: Likewise.
* include/experimental/iterator: Likewise.
* include/experimental/list: Likewise.
* include/experimental/map: Likewise.
* include/experimental/memory: Likewise.
* include/experimental/memory_resource: Likewise.
* include/experimental/net: Likewise.
* include/experimental/netfwd: Likewise.
* include/experimental/numeric: Likewise.
* include/experimental/optional: Likewise.
* include/experimental/propagate_const: Likewise.
* include/experimental/random: Likewise.
* include/experimental/ratio: Likewise.
* include/experimental/regex: Likewise.
* include/experimental/scope: Likewise.
* include/experimental/set: Likewise.
* include/experimental/simd: Likewise.
* include/experimental/socket: Likewise.
* include/experimental/source_location: Likewise.
* include/experimental/string: Likewise.
* include/experimental/string_view: Likewise.
* include/experimental/system_error: Likewise.
* include/experimental/timer: Likewise.
* include/experimental/tuple: Likewise.
* include/experimental/unordered_map: Likewise.
* include/experimental/unordered_set: Likewise.
* include/experimental/utility: Likewise.
* include/experimental/vector: Likewise.
* include/std/barrier: Likewise.
* include/std/chrono: Likewise.
* include/std/condition_variable: Likewise.
* include/std/deque: Likewise.
* include/std/execution: Likewise.
* include/std/filesystem: Likewise.
* include/std/forward_list: Likewise.
* include/std/fstream: Likewise.
* include/std/future: Likewise.
* include/std/iomanip: Likewise.
* include/std/ios: Likewise.
* include/std/iosfwd: Likewise.
* include/std/iostream: Likewise.
* include/std/istream: Likewise.
* include/std/latch: Likewise.
* include/std/list: Likewise.
* include/std/locale: Likewise.
* include/std/map: Likewise.
* include/std/memory_resource: Likewise.
* include/std/mutex: Likewise.
* include/std/ostream: Likewise.
* include/std/queue: Likewise.
* include/std/random: Likewise.
* include/std/regex: Likewise.
* include/std/semaphore: Likewise.
* include/std/set: Likewise.
* include/std/shared_mutex: Likewise.
* include/std/spanstream: Likewise.
* include/std/sstream: Likewise.
* include/std/stack: Likewise.
* include/std/stacktrace: Likewise.
* include/std/stop_token: Likewise.
* include/std/streambuf: Likewise.
* include/std/string: Likewise.
* include/std/syncstream: Likewise.
* include/std/system_error: Likewise.
* include/std/thread: Likewise.
* include/std/unordered_map: Likewise.
* include/std/unordered_set: Likewise.
* include/std/valarray: Likewise.
* include/std/vector: Likewise.
* include/tr1/array: Likewise.
* include/tr1/ccomplex: Likewise.
* include/tr1/cctype: Likewise.
* include/tr1/cfenv: Likewise.
* include/tr1/cfloat: Likewise.
* include/tr1/cintt

[Bug libstdc++/106953] C++23 add new headers for freestanding

2022-10-03 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106953

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

https://gcc.gnu.org/g:6885e7e4eef65c657cd8baa0f5e7ebe7231ac984

commit r13-3038-g6885e7e4eef65c657cd8baa0f5e7ebe7231ac984
Author: Arsen ArsenoviÄ 
Date:   Fri Sep 16 10:38:41 2022 +0200

libstdc++: Rework how freestanding install works [PR106953]

In light of there being far more freestanding headers now, ad-hoc
maintenance of a subset of the install implementation has become
unsustainable. Instead, we gate off a part of the normal install routine
so that it works without HOSTED enabled, as well as subdivide lists of
headers into freestanding and hosted components, according to the HOSTED
flag.

libstdc++-v3/ChangeLog:

PR libstdc++/106953
* include/Makefile.am [!_GLIBCXX_HOSTED]: Remove
install-freestanding-headers, unifying it with the usual
install-headers
* include/Makefile.in: Regenerate.

[Bug libstdc++/103626] _GLIBCXX_HOSTED should respect -ffreestanding

2022-10-03 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103626

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

https://gcc.gnu.org/g:25ebfdb774c0e8cc6c55e02644ee2cb157ce29d7

commit r13-3040-g25ebfdb774c0e8cc6c55e02644ee2cb157ce29d7
Author: Jonathan Wakely 
Date:   Fri Sep 30 16:58:31 2022 +0200

libstdc++: Add effective-target 'hosted' for testsuite [PR103626]

PR libstdc++/103626 - _GLIBCXX_HOSTED should respect -ffreestanding

libstdc++-v3/ChangeLog:

PR libstdc++/103626
* testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
Also require hosted.
(check_effective_target_hosted): New proc.

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

https://gcc.gnu.org/g:54fd7d81709c5f50537128d3978b4c642b68a711

commit r13-3041-g54fd7d81709c5f50537128d3978b4c642b68a711
Author: Arsen ArsenoviÄ 
Date:   Wed Sep 28 21:30:11 2022 +0200

libstdc++: Re-enable std::hash in freestanding [PR103626]

PR libstdc++/103626 - _GLIBCXX_HOSTED should respect -ffreestanding

libstdc++-v3/ChangeLog:

PR libstdc++/103626
* include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash.
* testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET
hosted.
* testsuite/20_util/bitset/ext/constexpr.cc: Likewise.

[Bug libstdc++/103626] _GLIBCXX_HOSTED should respect -ffreestanding

2022-10-03 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103626

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

https://gcc.gnu.org/g:25ebfdb774c0e8cc6c55e02644ee2cb157ce29d7

commit r13-3040-g25ebfdb774c0e8cc6c55e02644ee2cb157ce29d7
Author: Jonathan Wakely 
Date:   Fri Sep 30 16:58:31 2022 +0200

libstdc++: Add effective-target 'hosted' for testsuite [PR103626]

PR libstdc++/103626 - _GLIBCXX_HOSTED should respect -ffreestanding

libstdc++-v3/ChangeLog:

PR libstdc++/103626
* testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
Also require hosted.
(check_effective_target_hosted): New proc.

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

https://gcc.gnu.org/g:54fd7d81709c5f50537128d3978b4c642b68a711

commit r13-3041-g54fd7d81709c5f50537128d3978b4c642b68a711
Author: Arsen ArsenoviÄ 
Date:   Wed Sep 28 21:30:11 2022 +0200

libstdc++: Re-enable std::hash in freestanding [PR103626]

PR libstdc++/103626 - _GLIBCXX_HOSTED should respect -ffreestanding

libstdc++-v3/ChangeLog:

PR libstdc++/103626
* include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash.
* testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET
hosted.
* testsuite/20_util/bitset/ext/constexpr.cc: Likewise.

[Bug libstdc++/103626] _GLIBCXX_HOSTED should respect -ffreestanding

2022-10-03 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103626

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

https://gcc.gnu.org/g:46eb2860942a29b40822570cb6625620f69ed30e

commit r13-3039-g46eb2860942a29b40822570cb6625620f69ed30e
Author: Arsen ArsenoviÄ 
Date:   Fri Sep 30 16:53:18 2022 +0200

libstdc++: Make some tests work on freestanding [PR103626]

PR libstdc++/103626 - _GLIBCXX_HOSTED should respect -ffreestanding

Co-authored-by: Jonathan Wakely 

libstdc++-v3/ChangeLog:

PR libstdc++/103626
* testsuite/17_intro/headers/c++1998/stdc++.cc [!__STDC_HOSTED__]:
Do not include C headers that aren't valid for freestanding.
* testsuite/17_intro/tag_type_explicit_ctor.cc [!__STDC_HOSTED__]:
Do not test tag types that aren't defined for freestanding.
* testsuite/18_support/headers/cstdlib/functions_std.cc: Do not
check for std::getenv and std::system for freestanding.
* testsuite/17_intro/using_namespace_std_exp_neg.cc
[!__STDC_HOSTED__]:
Do not test hosted parts of the standard library.
* testsuite/17_intro/using_namespace_std_tr1_neg.cc
[!__STDC_HOSTED__]:
Likewise.
* testsuite/20_util/allocator_traits/members/rebind_alloc.cc
[!__STDC_HOSTED__]:
Likewise.
*
testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc
[!HOSTED]:
Likewise.
* testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]:
Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc
[!__STDC_HOSTED__]:
Likewise.
* testsuite/20_util/pointer_traits/requirements/typedefs.cc
[!__STDC_HOSTED__]:
Likewise.
* testsuite/20_util/tuple/cons/deduction.cc [!__STDC_HOSTED__]:
Likewise.
* testsuite/25_algorithms/move/93872.cc [!__STDC_HOSTED__]:
Likewise.
* testsuite/std/ranges/adaptors/100577.cc [!__STDC_HOSTED__]:
Likewise.

[Bug libstdc++/103626] _GLIBCXX_HOSTED should respect -ffreestanding

2022-10-03 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103626

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

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

commit r13-3043-g7cc9022f8d5c5cc02cc4f8af2f27184a81536fcf
Author: Arsen ArsenoviÄ 
Date:   Fri Sep 30 17:06:49 2022 +0200

libstdc++: Disable hosted-only tests [PR103626]

PR libstdc++/103626 - _GLIBCXX_HOSTED should respect -ffreestanding

libstdc++-v3/ChangeLog:

PR libstdc++/103626
* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc:
Require ET hosted.
* testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
* testsuite/18_support/new_nothrow.cc: Likewise.
* testsuite/20_util/allocator/105975.cc: Likewise.
* testsuite/20_util/allocator/14176.cc: Likewise.
* testsuite/20_util/allocator/64135.cc: Likewise.
* testsuite/20_util/allocator/89510.cc: Likewise.
* testsuite/20_util/allocator/lwg3190.cc: Likewise.
* testsuite/20_util/allocator/overaligned.cc: Likewise.
* testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
* testsuite/20_util/allocator/requirements/constexpr.cc:
Likewise.
*
testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc:
Likewise.
* testsuite/20_util/allocator/requirements/typedefs.cc:
Likewise.
* testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
Likewise.
* testsuite/20_util/allocator/void.cc: Likewise.
* testsuite/20_util/allocator_traits/header-2.cc: Likewise.
* testsuite/20_util/allocator_traits/header.cc: Likewise.
* testsuite/20_util/allocator_traits/members/92878_92947.cc:
Likewise.
* testsuite/20_util/allocator_traits/members/pointers.cc:
Likewise.
* testsuite/20_util/allocator_traits/requirements/typedefs.cc:
Likewise.
* testsuite/20_util/bad_function_call/cons_virtual_derivation.cc:
Likewise.
* testsuite/20_util/bind/42593.cc: Likewise.
* testsuite/20_util/bitset/access/dr396.cc: Likewise.
* testsuite/20_util/bitset/access/to_string.cc: Likewise.
* testsuite/20_util/bitset/cons/16020.cc: Likewise.
* testsuite/20_util/bitset/cons/dr1325-2.cc: Likewise.
* testsuite/20_util/bitset/cons/dr396.cc: Likewise.
* testsuite/20_util/bitset/debug/invalidation/1.cc: Likewise.
* testsuite/20_util/bitset/ext/15361.cc: Likewise.
* testsuite/20_util/bitset/operations/13838.cc: Likewise.
* testsuite/20_util/bitset/operations/96303.cc: Likewise.
* testsuite/20_util/bitset/version.cc: Likewise.
* testsuite/20_util/enable_shared_from_this/56383.cc: Likewise.
* testsuite/20_util/enable_shared_from_this/89303.cc: Likewise.
* testsuite/20_util/enable_shared_from_this/members/assign.cc:
Likewise.
* testsuite/20_util/enable_shared_from_this/members/const.cc:
Likewise.
* testsuite/20_util/enable_shared_from_this/members/reinit.cc:
Likewise.
* testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc:
Likewise.
*
testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
Likewise.
*
testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc:
Likewise.
* testsuite/20_util/forward/1.cc: Likewise.
* testsuite/20_util/forward/1_neg.cc: Likewise.
* testsuite/20_util/function/1.cc: Likewise.
* testsuite/20_util/function/10.cc: Likewise.
* testsuite/20_util/function/2.cc: Likewise.
* testsuite/20_util/function/3.cc: Likewise.
* testsuite/20_util/function/4.cc: Likewise.
* testsuite/20_util/function/43397.cc: Likewise.
* testsuite/20_util/function/48541.cc: Likewise.
* testsuite/20_util/function/5.cc: Likewise.
* testsuite/20_util/function/58569.cc: Likewise.
* testsuite/20_util/function/6.cc: Likewise.
* testsuite/20_util/function/60594.cc: Likewise.
* testsuite/20_util/function/65760.cc: Likewise.
* testsuite/20_util/function/69222.cc: Likewise.
* testsuite/20_util/function/7.cc: Likewise.
* testsuite/20_util/function/77322.cc: Likewise.
* testsuite/20_util/function/8.cc: Likewise.
* testsuite/20_util/function/9.cc: Likewise.
* testsuite/20_util/function/91456.cc: Likewise.
* testsuite/20_util/function/assign/move.cc: Likewise.
* testsuite/20_util/function/assign/move_target.cc: Likewise.
 

[Bug target/107131] [11/12 Regression] wrong code with -Os -fno-ipa-vrp -fno-tree-bit-ccp

2022-10-03 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107131

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2022-10-03
 CC||marxin at gcc dot gnu.org,
   ||rguenth at gcc dot gnu.org
Summary|wrong code with -Os |[11/12 Regression] wrong
   |-fno-ipa-vrp|code with -Os -fno-ipa-vrp
   |-fno-tree-bit-ccp   |-fno-tree-bit-ccp
 Ever confirmed|0   |1

--- Comment #1 from Martin Liška  ---
It's there since the introduction of __builtin_shufflevector
(r12-1128-gef8176e0fac935c0).

[Bug c++/107104] semantics of __builtin_constant_p within static_assert and return value

2022-10-03 Thread h2+bugs at fsfe dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107104

Hannes Hauswedell  changed:

   What|Removed |Added

 CC||h2+bugs at fsfe dot org

--- Comment #1 from Hannes Hauswedell  ---
It seems that __builtin_constant_p does not indicate whether something *can be*
a constant but whether *it is* a constant.
If you evaluate it in a non-const-context, the expression passed as argument
may or may not be evaluated at compile-time, so the value of
__builtin_constant_p may or may not be 1.

This example illustrates the behaviour:

```cpp
constexpr void foobar() {}// → test() returns 0 or 1
//consteval void foobar() {}  // → test() returns 1

#define TEST_EXPR (foobar(), 0)

int test() {
static_assert(__builtin_constant_p(TEST_EXPR));
return __builtin_constant_p(TEST_EXPR);
}
```


To enforce evaluation in a const-context, you can define a macro like this:

#define IS_CONSTEXPR(...) std::integral_constant::value

[Bug libstdc++/103626] _GLIBCXX_HOSTED should respect -ffreestanding

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103626

Jonathan Wakely  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |13.0

--- Comment #13 from Jonathan Wakely  ---
Done for GCC 13 thanks to Arsen.

[Bug c++/19992] -fhosted/-ffreestanding for C++

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19992
Bug 19992 depends on bug 103626, which changed state.

Bug 103626 Summary: _GLIBCXX_HOSTED should respect -ffreestanding
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103626

   What|Removed |Added

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

[Bug libstdc++/106953] C++23 add new headers for freestanding

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106953

Jonathan Wakely  changed:

   What|Removed |Added

 Resolution|--- |FIXED
   Target Milestone|--- |13.0
 Status|UNCONFIRMED |RESOLVED

--- Comment #7 from Jonathan Wakely  ---
Done for GCC 13.

[Bug libstdc++/106749] Implement C++23 library features

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106749
Bug 106749 depends on bug 106953, which changed state.

Bug 106953 Summary: C++23 add new headers for freestanding
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106953

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

[Bug c++/107104] semantics of __builtin_constant_p within static_assert and return value

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107104

--- Comment #2 from Jonathan Wakely  ---
(In reply to Hannes Hauswedell from comment #1)
> It seems that __builtin_constant_p does not indicate whether something *can
> be* a constant but whether *it is* a constant.

Correct.

[Bug c/59850] Support sparse-style pointer address spaces (type attributes)

2022-10-03 Thread mpolacek at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59850

Marek Polacek  changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org

--- Comment #36 from Marek Polacek  ---
(In reply to H. Peter Anvin from comment #16)
> Josh: nullptr pollutes the C user namespace, so it's not an option.

FWIW, C23 added the nullptr keyword which gcc already implements:
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=60d84e82639e25b025a926b19ec5a92fba4447ce

[Bug bootstrap/107059] [13 regression] bootstrap failure after r13-2887-gb04208895fed34

2022-10-03 Thread seurer at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107059

--- Comment #30 from seurer at gcc dot gnu.org ---
Any more progress on this?  Builds still fail on powerpc64 LE.

[Bug bootstrap/107059] [13 regression] bootstrap failure after r13-2887-gb04208895fed34

2022-10-03 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107059

--- Comment #31 from Jakub Jelinek  ---
Still waiting for review.

[Bug tree-optimization/107130] [13 Regression] wrong code with -Os -fno-tree-ccp -fno-tree-forwprop -fno-tree-fre since r13-2900-g001c60ccfeaf9a48

2022-10-03 Thread aldyh at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107130

Aldy Hernandez  changed:

   What|Removed |Added

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

--- Comment #4 from Aldy Hernandez  ---
(In reply to Martin Liška from comment #3)
> > Nice, so ffs() with a propagated constant argument now does a popcount()
> > instead?
> 
> It should not. The problem is op_cfn_popcount is shared by both popcount and
> ffs, but the newly added transformation is valid only for popcount.

Ughh, indeed.  Thanks for the analysis Martin.

[Bug tree-optimization/107130] [13 Regression] wrong code with -Os -fno-tree-ccp -fno-tree-forwprop -fno-tree-fre since r13-2900-g001c60ccfeaf9a48

2022-10-03 Thread aldyh at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107130

--- Comment #5 from Aldy Hernandez  ---
Created attachment 53656
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53656&action=edit
untested patch

[Bug tree-optimization/107114] [13 Regression] Failure to discover range results in bogus warning

2022-10-03 Thread amacleod at redhat dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107114

--- Comment #1 from Andrew Macleod  ---
Looks like something in the change is causing the loop analysis to not be able
to count the iterations.


> Analyzing # of iterations of loop 1
>   exit condition [1, + , 1] != 0
>   bounds on difference of bases: -1 ... -1
>   result:
> # of iterations 65535, bounded by 65535
109,110d68


before this change, loop analysis decided the range of _26 as
a_lsm.14_26: [irange] short int [1, 9] NONZERO 0xf a

afterwards, it doesn't even seem to see the loop.  IN fact, before LCSSA
creates a whole bunch of new blocks too.

< ;; Created LCSSA PHI: a_lsm.14_15 = PHI 
< ;; Created LCSSA PHI: a_lsm_flag.15_16 = PHI 
< ;; Created LCSSA PHI: d_47 = PHI 
< 
< Updating SSA:
< Registering new PHI nodes in block #13
< Updating SSA information for statement if (a_lsm.14_26 != 0)
< Registering new PHI nodes in block #6
< Registering new PHI nodes in block #12
< Updating SSA information for statement a.9_9 = (unsigned short) a_lsm.14_26;
< Registering new PHI nodes in block #16
< Registering new PHI nodes in block #7
< Registering new PHI nodes in block #8
< Updating SSA information for statement if (d_13 != 0B)
< Registering new PHI nodes in block #9
< Updating SSA information for statement if (a_lsm_flag.15_28 != 0)
< Registering new PHI nodes in block #10
< Updating SSA information for statement a = a_lsm.14_26;
< Registering new PHI nodes in block #11
< Registering new PHI nodes in block #19
< Registering new PHI nodes in block #15

[Bug c/59850] Support sparse-style pointer address spaces (type attributes)

2022-10-03 Thread hpa at zytor dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59850

--- Comment #37 from H. Peter Anvin  ---
One would assume that there would be __foo__ aliases for the attribute names
like all the other ones.

[Bug middle-end/56314] Please allow per-function specification of register conventions

2022-10-03 Thread hpa at zytor dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56314

--- Comment #6 from H. Peter Anvin  ---
Unfortunately that's not really possible given the way the way the level does
runtime patching (which isn't going to change, sorry.) At the very least we
would need a *lot* more compiler support to give LTO all the information that
it needs; say a *very* minimum LTO would need to support ORC metadata.

[Bug c++/772] Statement expressions issues

2022-10-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=772

--- Comment #23 from Andrew Pinski  ---
Part of the C++ front-end issues was fixed with
r13-3046-gc823366fdb9069a54a37a3b18b65a4fa69feabfd . I didn't look to see if
all were fixed though.

[Bug c++/107133] New: _GLIBCXX_USE_C99_STDINT_TR1 macro is not defined for --disable-hosted-libstdcxx without libc

2022-10-03 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107133

Bug ID: 107133
   Summary: _GLIBCXX_USE_C99_STDINT_TR1 macro is not defined for
--disable-hosted-libstdcxx without libc
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: unlvsur at live dot com
  Target Milestone: ---

The bug is still there.

../../include/fast_io_core_impl/iso/iso8601.h:297:23: error: 'uint_least32_t'
in namespace 'std' does not name a type
  |   ^~

[Bug libstdc++/107133] _GLIBCXX_USE_C99_STDINT_TR1 macro is not defined for --disable-hosted-libstdcxx without libc

2022-10-03 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107133

--- Comment #1 from cqwrteur  ---
cstdint does not do anything since the macro is not defined

[Bug libstdc++/107133] _GLIBCXX_USE_C99_STDINT_TR1 macro is not defined for --disable-hosted-libstdcxx without libc

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107133

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #2 from Jonathan Wakely  ---
Didn't you already report this?

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

[Bug libstdc++/104605] _GLIBCXX_USE_C99_STDINT_TR1 macro is not defined for canadian cross freestanding C++ toolchain

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104605

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

[Bug libstdc++/104605] _GLIBCXX_USE_C99_STDINT_TR1 macro is not defined for canadian cross freestanding C++ toolchain

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104605

--- Comment #6 from Jonathan Wakely  ---
(In reply to cqwrteur from comment #0)
> Also stdint.h in GCC is not correctly defined without -ffreestanding flag.

You can just use -ffreestanding now, and you'll get GCC's own stdint header.

[Bug c++/107134] New: fatal error: stdint.h: No such file or directory for freestanding C++ toolchain

2022-10-03 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107134

Bug ID: 107134
   Summary: fatal error: stdint.h: No such file or directory for
freestanding C++ toolchain
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: unlvsur at live dot com
  Target Milestone: ---

x86_64-elf-g++ -v
Using built-in specs.
COLLECT_GCC=x86_64-elf-g++
COLLECT_LTO_WRAPPER=/home/cqwrteur/toolchains/native/x86_64-elf/libexec/gcc/x86_64-elf/13.0.0/lto-wrapper
Target: x86_64-elf
Configured with: ../../../../gcc/configure --disable-nls --disable-werror
--target=x86_64-elf --prefix=/home/cqwrteur/toolchains/native/x86_64-elf
--without-headers --disable-hosted-libstdcxx --disable-libstdcxx-verbose
--enable-languages=c,c++ --enable-multilib
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 13.0.0 20221003 (experimental) (GCC) 


x86_64-elf-g++ -c b.cc -std=c++23
In file included from
/home/cqwrteur/toolchains/native/x86_64-elf/x86_64-elf/include/c++/13.0.0/cstdint:41,
 from b.cc:1:
/home/cqwrteur/toolchains/native/x86_64-elf/lib/gcc/x86_64-elf/13.0.0/include/stdint.h:9:16:
fatal error: stdint.h: No such file or directory
9 | # include_next 
  |^~
compilation terminated.

stdint.h requires -ffreestanding flag to include the right header. However
--without-headers --disable-hosted-libstdcxx already implies it is
freestanding. it needs a fix the stdint.h

[Bug libstdc++/104605] _GLIBCXX_USE_C99_STDINT_TR1 macro is not defined for canadian cross freestanding C++ toolchain

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104605

--- Comment #7 from Jonathan Wakely  ---
Created attachment 53657
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53657&action=edit
Use predefined macros to define freestanding 

I have this patch locally, but I don't think the  changes are
actually necessary. Using -ffreestanding should ensure they are present
already.

[Bug c++/107134] fatal error: stdint.h: No such file or directory for freestanding C++ toolchain

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107134

--- Comment #1 from Jonathan Wakely  ---
With current trunk, you need to use -ffreestanding if you are compiling for
freestanding.

--without-headers --disable-hosted-libstdcxx  says to build a freestanding
library, that doesn't tell the compiler anything when you invoke it.

[Bug tree-optimization/107114] [13 Regression] Failure to discover range results in bogus warning

2022-10-03 Thread law at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107114

--- Comment #2 from Jeffrey A. Law  ---
Which is just uber-weird.  The change in question removes a little subloop
which becomes unreachable.  Why that would cause us to be unable to analyze the
remaining key loop for the IV's range is a complete mystery.  Though I guess
I'll have to sit down and debug that a bit.  VRP is just calling into the loop
optimizer to to the IV analysis, right?


WRT the new blocks -- I strongly suspect they're part of normalization of the
loop and putting it into LCSSA form.  I'm not terribly worried about them. 
Typically they're just going to be creating empty loop latches.

[Bug libstdc++/107135] New: array::at() method should not be in for freestanding C++

2022-10-03 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107135

Bug ID: 107135
   Summary: array::at() method should not be in  for
freestanding C++
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: unlvsur at live dot com
  Target Milestone: ---

Created attachment 53658
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53658&action=edit
array diff

Looks like array and span are GCC extensions to be in freestanding. That is
fine.
However, I think at() method has little chance to be in the future freestanding
C++ standard. I suggest that we should guard against those methods to prevent
potential issues forwarding compatibility issues.

[Bug c++/107134] fatal error: stdint.h: No such file or directory for freestanding C++ toolchain

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107134

--- Comment #2 from Jonathan Wakely  ---
Although we could do:

#if ! _GLIBCXX_HOSTED
#include 
#else
#include_next 
#endif

to make it work.

[Bug plugins/107136] New: File cp-trait.def not found in kernel build

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

Bug ID: 107136
   Summary: File cp-trait.def not found in kernel build
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: plugins
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

I've just been having a go at compiling the new linux-6.0 kernel
with a recent trunk gcc. I get

/home/dcb/gcc/results.20221003/lib/gcc/x86_64-pc-linux-gnu/13.0.0/plugin/include/c-family/c-common.h:172:10:
fatal error: cp/cp-trait.def: No such file or directory

but

$ find /home/dcb/gcc/results.20221003 -name cp-trait.def -print
$

so it looks like that file isn't installed. But

[/home/dcb/gcc/trunk.git] $ find . -name cp-trait\* -print
./gcc/cp/cp-trait.def
[/home/dcb/gcc/trunk.git] $ 

so the file does exist in trunk.

[Bug plugins/107136] File cp-trait.def not found in kernel build

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

David Binderman  changed:

   What|Removed |Added

 CC||ppalka at gcc dot gnu.org

--- Comment #1 from David Binderman  ---
Adding author of the source code file for their best advice.

[Bug tree-optimization/107114] [13 Regression] Failure to discover range results in bogus warning

2022-10-03 Thread amacleod at redhat dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107114

--- Comment #3 from Andrew Macleod  ---
yeah, we just invoke the loop analyzer and pick up what it tells us. From VRP2
point of view, it is just not getting the info supplied from the loop
optimizer.

I see dom3 removes some code and I see 

 < fix_loop_structure: removing loop 5

any chance it doesn't fix it up right somehow?

[Bug bootstrap/107120] [13 Regression] trunk fails to bootstrap on powerpc64le-linux-gnu

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

Arseny Solokha  changed:

   What|Removed |Added

 CC||asolokha at gmx dot com

--- Comment #2 from Arseny Solokha  ---
(In reply to Martin Liška from comment #1)
> Should be fixed with r13-2932-ga5a9237e2a78a9, can you confirm that?

I get the same bootstrap error in libitm while building gcc 13.0.0 20221002
snapshot (g:d01bd0b0f3b8f4c33c437ff10f0b949200627f56) against glibc 2.36 for
x86_64. Should I file a separate PR for that?

[Bug plugins/107136] File cp-trait.def not found in kernel build

2022-10-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107136

Andrew Pinski  changed:

   What|Removed |Added

Version|12.0|13.0

--- Comment #2 from Andrew Pinski  ---
I wish plugins API would finally be stable or rather Linux not use Plugins.

[Bug c++/107136] [13 Regression] File cp/cp-trait.def file not installed for plugin suport

2022-10-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107136

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |13.0
  Component|plugins |c++
   Keywords||plugin

[Bug tree-optimization/107114] [13 Regression] Failure to discover range results in bogus warning

2022-10-03 Thread law at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107114

--- Comment #4 from Jeffrey A. Law  ---
I'll double check, but IIRC we throw away the loop structures at the end of DOM
and they're supposed to be rebuilt (which appears to be happening as we
re-construct LCSSA).

[Bug c++/107136] [13 Regression] File cp/cp-trait.def file not installed for plugin suport

2022-10-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107136

--- Comment #3 from Andrew Pinski  ---
This is most likely the fix but I don't have time to test it right now"
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index 38d8eeed1f0..aa84d6827be 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -39,7 +39,7 @@ CXX_INSTALL_NAME := $(shell echo c++|sed
'$(program_transform_name)')
 GXX_INSTALL_NAME := $(shell echo g++|sed '$(program_transform_name)')
 CXX_TARGET_INSTALL_NAME := $(target_noncanonical)-$(shell echo c++|sed
'$(program_transform_name)')
 GXX_TARGET_INSTALL_NAME := $(target_noncanonical)-$(shell echo g++|sed
'$(program_transform_name)')
-CP_PLUGIN_HEADERS := cp-tree.h cxx-pretty-print.h name-lookup.h type-utils.h
operators.def
+CP_PLUGIN_HEADERS := cp-tree.h cxx-pretty-print.h name-lookup.h type-utils.h
operators.def cp-trait.def

 #^L
 # Define the names for selecting c++ in LANGUAGES.

[Bug c++/107136] [13 Regression] File cp/cp-trait.def file not installed for plugin suport

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

--- Comment #4 from David Binderman  ---
(In reply to Andrew Pinski from comment #3)
> This is most likely the fix but I don't have time to test it right now"

The obvious copy seems to fix the problem:

[/home/dcb/gcc/trunk.git] $ cp ./gcc/cp/cp-trait.def
../results.20221003/lib/gcc/x86_64-pc-linux-gnu/13.0.0/plugin/include/cp/
[/home/dcb/gcc/trunk.git] $

[Bug libstdc++/104605] _GLIBCXX_USE_C99_STDINT_TR1 macro is not defined for canadian cross freestanding C++ toolchain

2022-10-03 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104605

--- Comment #8 from cqwrteur  ---
(In reply to Jonathan Wakely from comment #7)
> Created attachment 53657 [details]
> Use predefined macros to define freestanding 
> 
> I have this patch locally, but I don't think the  changes are
> actually necessary. Using -ffreestanding should ensure they are present
> already.

stdint.h is a freestanding C header but not a freestanding C++ header if i
remembered correctly.

[Bug c++/107123] Size deduction for vector size in template fails

2022-10-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107123

--- Comment #1 from Andrew Pinski  ---
Yes GCC does not do deduction on the vector size attribute currently.
This part of the extension is not documented one way or the other either
because nobody thought of this right now.

One easy way around this is to wrap the vector type in class and use that class
always.

It would be nice to standardized the vector attribute.

[Bug c++/107123] Size deduction for vector size in template fails

2022-10-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107123

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||documentation
   Severity|normal  |enhancement

[Bug c++/107123] Size deduction for vector size in template fails

2022-10-03 Thread milasudril at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107123

--- Comment #2 from milasudril at gmail dot com ---
> It would be nice to standardized the vector attribute.

Good features to have:

constexpr std::size (and also std::ssize)

template
inline constexpr std::is_simd_type_v = ...;

namespace std {
template
struct simd_element_type{
  using type = ...;
};

template
simd_element_type_t = typename simd_element_type::type;
}

I belive the working paper is p2638r0

https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2638r0.pdf

[Bug libstdc++/107135] array::at() method should not be in for freestanding C++

2022-10-03 Thread arsen at aarsen dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107135

Arsen Arsenović  changed:

   What|Removed |Added

 CC||arsen at aarsen dot me

--- Comment #1 from Arsen Arsenović  ---
I'm not so sure, exceptions are explicitly mentioned (and specified to just
std::terminate if not possible/disabled) in P1642. The paper defers handling
these headers for later. With the exceptions note in mind, what forward
compatibility issue do you have in mind?

[Bug target/107131] [11/12 Regression] wrong code with -Os -fno-ipa-vrp -fno-tree-bit-ccp

2022-10-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107131

--- Comment #2 from Andrew Pinski  ---
Note there is a missed optimization here (unrelated to the wrong code):
  _32 = o_13(D) == 0;
  _35 = (long int) _32;
  _36 = -_35;
  _109 = (long long unsigned int) _36;
  _102 = _109 > 10439075533421201520;

This should just be:

  _32 = o_13(D) == 0;
  _ = (long long unsigned int) _32;
  _109 = -_35;

Let me file that as a seperate bug.

[Bug fortran/107000] ICE in gfc_real2complex, at fortran/arith.cc:2243

2022-10-03 Thread anlauf at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107000

anlauf at gcc dot gnu.org changed:

   What|Removed |Added

  Attachment #53651|0   |1
is obsolete||

--- Comment #20 from anlauf at gcc dot gnu.org ---
Created attachment 53659
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53659&action=edit
Next try.

(In reply to Mikael Morin from comment #18)
> Well, a new return code seems better (ARITH_INVALID_TYPE ?).
> I think it's better to move the check to the various gfc_arith_times,
> gfc_arith_plus, gfc_arith_concat etc, because only those functions know what
> type is appropriate and what is not.
> Admittedly BT_UNKNOWN is probably never appropriate, and the check could be
> done in reduce_binary_ac, but then it should be in reduce_binary_ca,
> reduce_binary_aa and reduce_unary as well.
> Then what's missing is a goto runtime in eval_intrinsic if evaluation
> returns ARITH_INVALID_TYPE.
> That's the first solution.

Here's a patch that introduces ARITH_INVALID_TYPE and handles errors in
reduce_unary, reduce_binary_ac, reduce_binary_ca, and reduce_binary_aa.

[Bug libstdc++/104605] _GLIBCXX_USE_C99_STDINT_TR1 macro is not defined for canadian cross freestanding C++ toolchain

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104605

--- Comment #9 from Jonathan Wakely  ---
 is freestanding, but  isn't listed as being required for
freestanding C++. That doesn't mean we can't provide it.

[Bug libstdc++/107135] array::at() method should not be in for freestanding C++

2022-10-03 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107135

--- Comment #2 from Jonathan Wakely  ---
We should make it terminate though, there's no definition of
__throw_out_of_range_fmt.

[Bug tree-optimization/107137] New: (unsigned)-(int)(bool_var) should be optimized to -(unsigned)bool_var

2022-10-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107137

Bug ID: 107137
   Summary: (unsigned)-(int)(bool_var) should be optimized to
-(unsigned)bool_var
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: enhancement
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: pinskia at gcc dot gnu.org
  Target Milestone: ---

Take:
```
unsigned f(_Bool a)
{
  int t = a;
  t = -t;
  return t;
}
```

Currently we get:
```
  t_2 = (int) a_1(D);
  t_3 = -t_2;
  _4 = (unsigned int) t_3;
```

But we can do better than that with just:
```
  _ = (unsigned int) a_1(D);
  _4 = -_;
```
Noticed that while looking into
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107131.

Note even bool_var could be an unsigned type or a type which whos size is
bigger than the outer type really.

[Bug target/107131] [11/12 Regression] wrong code with -Os -fno-ipa-vrp -fno-tree-bit-ccp

2022-10-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107131

--- Comment #3 from Andrew Pinski  ---
(In reply to Andrew Pinski from comment #2) 
> Let me file that as a seperate bug.

Created PR 107137.

  1   2   >