public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/110315] New: [13 Regression] g++ crashes with a segmentation fault while compiling a large const std::vector of std::string since r13-6566-ge0324e2629e25a90
@ 2023-06-19 23:34 glebfm at altlinux dot org
  2023-06-20  0:02 ` [Bug tree-optimization/110315] " pinskia at gcc dot gnu.org
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: glebfm at altlinux dot org @ 2023-06-19 23:34 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 110315
           Summary: [13 Regression] g++ crashes with a segmentation fault
                    while compiling a large const std::vector of
                    std::string since r13-6566-ge0324e2629e25a90
           Product: gcc
           Version: 13.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: glebfm at altlinux dot org
  Target Milestone: ---

Created attachment 55366
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55366&action=edit
preprocessed source

$ ~/gcc-test/bin/g++ --version
g++ (GCC) 13.1.1 20230619
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ ~/gcc-test/bin/g++ -O -c test.ii
g++: internal compiler error: Segmentation fault signal terminated program
cc1plus
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
See <https://gcc.gnu.org/bugs/> for instructions.

$ gdb -q --args
/usr/src/gcc-test/libexec/gcc/x86_64-pc-linux-gnu/13.1.1/cc1plus -quiet -O
test.cpp -o test.o
Reading symbols from
/usr/src/gcc-test/libexec/gcc/x86_64-pc-linux-gnu/13.1.1/cc1plus...
(gdb) run
Starting program:
/usr/src/gcc-test/libexec/gcc/x86_64-pc-linux-gnu/13.1.1/cc1plus -quiet -O
test.cpp -o test.o
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x0000000001aafe51 in fold_using_range::range_of_phi
(this=this@entry=0x7ffffbfffcaf, r=warning: RTTI symbol not found for class
'int_range<255u>'
..., phi=phi@entry=0x7ffff2d4c000, src=...) at
../../gcc/gimple-range-fold.cc:733
733     {
(gdb) bt
#0  0x0000000001aafe51 in fold_using_range::range_of_phi
(this=this@entry=0x7ffffbfffcaf, r=warning: RTTI symbol not found for class
'int_range<255u>'
..., phi=phi@entry=0x7ffff2d4c000, src=...)
    at ../../gcc/gimple-range-fold.cc:733
#1  0x0000000001ab2289 in fold_using_range::fold_stmt (this=0x7ffffbfffcaf,
r=warning: RTTI symbol not found for class 'int_range<255u>'
..., s=0x7ffff2d4c000, src=..., name=0x7ffff2d4b480) at
../../gcc/gimple-range-fold.cc:491
#2  0x0000000001aa5292 in gimple_ranger::fold_range_internal
(name=0x7ffff2d4b480, s=0x7ffff2d4c000, r=warning: RTTI symbol not found for
class 'int_range<255u>'
..., this=0x29069a0) at ../../gcc/gimple-range.cc:257
#3  gimple_ranger::range_of_stmt (this=0x29069a0, r=warning: RTTI symbol not
found for class 'int_range<255u>'
..., s=0x7ffff2d4c000, name=<optimized out>) at ../../gcc/gimple-range.cc:318
#4  0x0000000001aa3fbb in gimple_ranger::range_on_entry
(this=this@entry=0x29069a0, r=warning: RTTI symbol not found for class
'int_range<255u>'
..., bb=0x7ffff34b0720, name=name@entry=0x7ffff2d4b480)
    at ../../gcc/gimple-range.cc:153
#5  0x0000000001aa6cff in gimple_ranger::range_of_expr (this=0x29069a0,
r=warning: RTTI symbol not found for class 'int_range<255u>'
..., expr=0x7ffff2d4b480, stmt=<optimized out>) at
../../gcc/gimple-range.cc:130
#6  0x0000000001aa418a in gimple_ranger::range_on_exit (this=0x29069a0,
r=warning: RTTI symbol not found for class 'int_range<255u>'
..., bb=0x7ffff34b0720, name=0x7ffff2d4b480) at ../../gcc/gimple-range.cc:187
#7  0x0000000001aa728a in gimple_ranger::range_on_edge (this=0x29069a0,
r=warning: RTTI symbol not found for class 'int_range<255u>'
..., e=0x7ffff325a720, name=0x7ffff2d4b480) at ../../gcc/gimple-range.cc:233
#8  0x0000000001ab012f in fold_using_range::range_of_phi
(this=this@entry=0x7ffffc0073af, r=warning: RTTI symbol not found for class
'int_range<255u>'
..., phi=phi@entry=0x7ffff2d4c100, src=...) at ../../gcc/value-range.h:634
#9  0x0000000001ab2289 in fold_using_range::fold_stmt (this=0x7ffffc0073af,
r=warning: RTTI symbol not found for class 'int_range<255u>'
..., s=0x7ffff2d4c100, src=..., name=0x7ffff2d4b4c8) at
../../gcc/gimple-range-fold.cc:491
#10 0x0000000001aa5292 in gimple_ranger::fold_range_internal
(name=0x7ffff2d4b4c8, s=0x7ffff2d4c100, r=warning: RTTI symbol not found for
class 'int_range<255u>'
#11 gimple_ranger::range_of_stmt (this=0x29069a0, r=warning: RTTI symbol not
found for class 'int_range<255u>'
..., s=0x7ffff2d4c100, name=<optimized out>) at ../../gcc/gimple-range.cc:318
#12 0x0000000001aa3fbb in gimple_ranger::range_on_entry
(this=this@entry=0x29069a0, r=warning: RTTI symbol not found for class
'int_range<255u>'
..., bb=0x7ffff34b0900, name=name@entry=0x7ffff2d4b4c8)
    at ../../gcc/gimple-range.cc:153
#13 0x0000000001aa6cff in gimple_ranger::range_of_expr (this=0x29069a0,
r=warning: RTTI symbol not found for class 'int_range<255u>'
..., expr=0x7ffff2d4b4c8, stmt=<optimized out>) at
../../gcc/gimple-range.cc:130
#14 0x0000000001aa418a in gimple_ranger::range_on_exit (this=0x29069a0,
r=warning: RTTI symbol not found for class 'int_range<255u>'
..., bb=0x7ffff34b0900, name=0x7ffff2d4b4c8) at ../../gcc/gimple-range.cc:187
#15 0x0000000001aa728a in gimple_ranger::range_on_edge (this=0x29069a0,
r=warning: RTTI symbol not found for class 'int_range<255u>'
..., e=0x7ffff325a840, name=0x7ffff2d4b4c8) at ../../gcc/gimple-range.cc:233
[...]
--Type <RET> for more, q to quit, c to continue without paging--c
[...]
#17640 0x0000000000de11bb in compile_file () at ../../gcc/toplev.cc:471
#17641 0x00000000006adb68 in do_compile (no_backend=false) at
../../gcc/toplev.cc:2125
#17642 toplev::main (this=this@entry=0x7fffffffe296, argc=<optimized out>,
argc@entry=6, argv=<optimized out>, argv@entry=0x7fffffffe3c8) at
../../gcc/toplev.cc:2277
#17643 0x00000000006af7cb in main (argc=6, argv=0x7fffffffe3c8) at
../../gcc/main.cc:39

The provided source code is a modified version of the original source code,
which can be found at
https://github.com/mbasaglia/glaxnimate/blob/master/src/gui/emoji/emoji_data.[ch]pp.
 The only change made in this modified version is the substitution of QString
with std::string.  The compiler encounters a segmentation fault when processing
either version.
The removal of approximately 400 emojis from the vector allows the source code
to be compiled successfully.

I isolated the regression to commit e0324e2629e25a90c13c68b4eef1e47b091970c3
(r13-6566-ge0324e2629e25a90) using git bisect.  I attempted to reproduce the
issue with the trunk (r14-1922-g53953b6f31f18ac2), it appears that the issue
does not occur there.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-09-26 18:06 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-19 23:34 [Bug c++/110315] New: [13 Regression] g++ crashes with a segmentation fault while compiling a large const std::vector of std::string since r13-6566-ge0324e2629e25a90 glebfm at altlinux dot org
2023-06-20  0:02 ` [Bug tree-optimization/110315] " pinskia at gcc dot gnu.org
2023-07-19 11:34 ` rguenth at gcc dot gnu.org
2023-07-19 14:06 ` amacleod at redhat dot com
2023-07-19 18:12 ` amacleod at redhat dot com
2023-07-19 18:55 ` amacleod at redhat dot com
2023-07-19 19:29 ` amacleod at redhat dot com
2023-07-20 15:07 ` amacleod at redhat dot com
2023-07-27  9:26 ` rguenth at gcc dot gnu.org
2023-07-29  7:07 ` glebfm at altlinux dot org
2023-09-26 11:03 ` rguenth at gcc dot gnu.org
2023-09-26 13:14 ` amacleod at redhat dot com
2023-09-26 18:05 ` cvs-commit at gcc dot gnu.org
2023-09-26 18:06 ` amacleod at redhat dot com

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).