public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/100547] New: ICE with "-g -O1": Segmentation fault signal terminated program cc1, during RTL pass: expand
@ 2021-05-11 21:19 cnsun at uwaterloo dot ca
2021-05-12 7:07 ` [Bug c/100547] ICE with "-g -O1": stack overflow in expand with a very large vector_size attribute rguenth at gcc dot gnu.org
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: cnsun at uwaterloo dot ca @ 2021-05-11 21:19 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100547
Bug ID: 100547
Summary: ICE with "-g -O1": Segmentation fault signal
terminated program cc1, during RTL pass: expand
Product: gcc
Version: tree-ssa
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: cnsun at uwaterloo dot ca
Target Milestone: ---
$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/scratch/software/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /tmp/tmp.FUbEknNORK-gcc-builder/gcc/configure
--enable-languages=c,c++,lto --enable-checking-yes --enable-multiarch
--prefix=/scratch/software/gcc-trunk --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20210511 (experimental) [master revision
:7db32cac8:aa891c56f25baac94db004e309d1b6e40b770a95] (GCC)
$ cat mutant.c
typedef __attribute__((vector_size(
((((((((((((((((((((((((((((((8 * sizeof(short)) * sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)) *
sizeof(short)))) V;
k() { V w = {}; }
$ gcc-trunk -O1 -g mutant.c
mutant.c:31:22: warning: type defaults to ‘int’ in declaration of ‘V’
[-Wimplicit-int]
31 | sizeof(short)))) V;
| ^
mutant.c:32:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
32 | k() { V w = {}; }
| ^
during RTL pass: expand
gcc-trunk: internal compiler error: Segmentation fault signal terminated
program cc1
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c/100547] ICE with "-g -O1": stack overflow in expand with a very large vector_size attribute
2021-05-11 21:19 [Bug c/100547] New: ICE with "-g -O1": Segmentation fault signal terminated program cc1, during RTL pass: expand cnsun at uwaterloo dot ca
@ 2021-05-12 7:07 ` rguenth at gcc dot gnu.org
2021-05-12 7:22 ` rguenth at gcc dot gnu.org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-05-12 7:07 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100547
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2021-05-12
Keywords| |accepts-invalid
Ever confirmed|0 |1
Component|middle-end |c
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
The issue is that VECTOR_CST_NELTS does not fit 32bits but RTX vectors have int
sizes.
I suggest to limit the vector_size attribute argument accordingly.
Also a better failure mode might be to make the rtvec_alloc size argument
size_t and ICE on a size that doesn't fit an int rather than silently
truncating.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c/100547] ICE with "-g -O1": stack overflow in expand with a very large vector_size attribute
2021-05-11 21:19 [Bug c/100547] New: ICE with "-g -O1": Segmentation fault signal terminated program cc1, during RTL pass: expand cnsun at uwaterloo dot ca
2021-05-12 7:07 ` [Bug c/100547] ICE with "-g -O1": stack overflow in expand with a very large vector_size attribute rguenth at gcc dot gnu.org
@ 2021-05-12 7:22 ` rguenth at gcc dot gnu.org
2021-05-12 8:48 ` cvs-commit at gcc dot gnu.org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-05-12 7:22 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100547
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org
Status|NEW |ASSIGNED
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Testing patch.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c/100547] ICE with "-g -O1": stack overflow in expand with a very large vector_size attribute
2021-05-11 21:19 [Bug c/100547] New: ICE with "-g -O1": Segmentation fault signal terminated program cc1, during RTL pass: expand cnsun at uwaterloo dot ca
2021-05-12 7:07 ` [Bug c/100547] ICE with "-g -O1": stack overflow in expand with a very large vector_size attribute rguenth at gcc dot gnu.org
2021-05-12 7:22 ` rguenth at gcc dot gnu.org
@ 2021-05-12 8:48 ` cvs-commit at gcc dot gnu.org
2021-05-18 7:03 ` cvs-commit at gcc dot gnu.org
2021-05-18 7:04 ` rguenth at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-05-12 8:48 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100547
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:
https://gcc.gnu.org/g:229a6dbd9ef1680f1ca02d6ce63e8abdffaaeeba
commit r12-737-g229a6dbd9ef1680f1ca02d6ce63e8abdffaaeeba
Author: Richard Biener <rguenther@suse.de>
Date: Wed May 12 09:07:42 2021 +0200
middle-end/100547 - check rtvec_alloc size
This makes the rtvec_alloc argument size_t catching overflow and
truncated arguments (from "invalid" testcases), verifying the
argument against INT_MAX which is the limit set by the int
typed rtvec_def.num_elem member.
2021-05-12 Richard Biener <rguenther@suse.de>
PR middle-end/100547
* rtl.h (rtvec_alloc): Make argument size_t.
* rtl.c (rtvec_alloc): Verify the count is less than INT_MAX.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c/100547] ICE with "-g -O1": stack overflow in expand with a very large vector_size attribute
2021-05-11 21:19 [Bug c/100547] New: ICE with "-g -O1": Segmentation fault signal terminated program cc1, during RTL pass: expand cnsun at uwaterloo dot ca
` (2 preceding siblings ...)
2021-05-12 8:48 ` cvs-commit at gcc dot gnu.org
@ 2021-05-18 7:03 ` cvs-commit at gcc dot gnu.org
2021-05-18 7:04 ` rguenth at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-05-18 7:03 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100547
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:
https://gcc.gnu.org/g:4054472b3fa15e11ccd48190f5e3ecfc89d65af9
commit r12-859-g4054472b3fa15e11ccd48190f5e3ecfc89d65af9
Author: Richard Biener <rguenther@suse.de>
Date: Wed May 12 09:20:17 2021 +0200
c/100547 - reject overly large vector_size attributes
This rejects a number of vector components that does not fit an 'int'
which is an internal limitation of RTVEC. This requires adjusting
gcc.dg/attr-vector_size.c which checks for much larger
supported vectors. Note that the RTVEC limitation is a host specific
limitation (unless we change this 'int' to int32_t), but should be
32bits in practice everywhere.
2021-05-12 Richard Biener <rguenther@suse.de>
PR c/100547
gcc/c-family/
* c-attribs.c (type_valid_for_vector_size): Reject too large
nunits.
Reword existing nunit diagnostic.
gcc/testsuite/
* gcc.dg/pr100547.c: New testcase.
* gcc.dg/attr-vector_size.c: Adjust.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c/100547] ICE with "-g -O1": stack overflow in expand with a very large vector_size attribute
2021-05-11 21:19 [Bug c/100547] New: ICE with "-g -O1": Segmentation fault signal terminated program cc1, during RTL pass: expand cnsun at uwaterloo dot ca
` (3 preceding siblings ...)
2021-05-18 7:03 ` cvs-commit at gcc dot gnu.org
@ 2021-05-18 7:04 ` rguenth at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-05-18 7:04 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100547
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed for GCC 12.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-05-18 7:04 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-11 21:19 [Bug c/100547] New: ICE with "-g -O1": Segmentation fault signal terminated program cc1, during RTL pass: expand cnsun at uwaterloo dot ca
2021-05-12 7:07 ` [Bug c/100547] ICE with "-g -O1": stack overflow in expand with a very large vector_size attribute rguenth at gcc dot gnu.org
2021-05-12 7:22 ` rguenth at gcc dot gnu.org
2021-05-12 8:48 ` cvs-commit at gcc dot gnu.org
2021-05-18 7:03 ` cvs-commit at gcc dot gnu.org
2021-05-18 7:04 ` rguenth at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).