public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/59752] New: Stack overflow on simple testcase
@ 2014-01-10 10:02 trippels at gcc dot gnu.org
  2014-01-15 20:52 ` [Bug c++/59752] " trippels at gcc dot gnu.org
  0 siblings, 1 reply; 2+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-01-10 10:02 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59752

            Bug ID: 59752
           Summary: Stack overflow on simple testcase
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org

Jakub's testcase from PR59659 comment 7 with an array size of 100000
overflows the stack:

markus@x4 tmp % cat test.ii
struct S { S (); S (int); ~S (); int i; };
struct A { S s[100000]; };

void
foo ()
{
    A a = {{}};
}

markus@x4 tmp % g++ -O2 -c test.ii
g++: internal compiler error: Segmentation fault (program cc1plus)
0x40ccef execute
        ../../gcc/gcc/gcc.c:2841
0x40cf57 do_spec_1
        ../../gcc/gcc/gcc.c:4641
0x40fccd process_brace_body
        ../../gcc/gcc/gcc.c:5924
0x40fccd handle_braces
        ../../gcc/gcc/gcc.c:5838
0x40d6e2 do_spec_1
        ../../gcc/gcc/gcc.c:5295
0x40fccd process_brace_body
        ../../gcc/gcc/gcc.c:5924
0x40fccd handle_braces
        ../../gcc/gcc/gcc.c:5838
0x40d6e2 do_spec_1
        ../../gcc/gcc/gcc.c:5295
0x40d2de do_spec_1
        ../../gcc/gcc/gcc.c:5410
0x40fccd process_brace_body
        ../../gcc/gcc/gcc.c:5924
0x40fccd handle_braces
        ../../gcc/gcc/gcc.c:5838
0x40d6e2 do_spec_1
        ../../gcc/gcc/gcc.c:5295
0x40fccd process_brace_body
        ../../gcc/gcc/gcc.c:5924
0x40fccd handle_braces
        ../../gcc/gcc/gcc.c:5838
0x40d6e2 do_spec_1
        ../../gcc/gcc/gcc.c:5295
0x40fccd process_brace_body
        ../../gcc/gcc/gcc.c:5924
0x40fccd handle_braces
        ../../gcc/gcc/gcc.c:5838
0x40d6e2 do_spec_1
        ../../gcc/gcc/gcc.c:5295
0x40fccd process_brace_body
        ../../gcc/gcc/gcc.c:5924
0x40fccd handle_braces
        ../../gcc/gcc/gcc.c:5838
Please submit a full bug report,
with preprocessed source if appropriate.

Program received signal SIGSEGV, Segmentation fault.
[Switching to process 26558]
0x000000000073c6bf in cp_gimplify_expr (expr_p=0x7ffff4f5ae28,
pre_p=0x7ffffbfff7f8, post_p=0x7ffffbfff460) at
../../gcc/gcc/cp/cp-gimplify.c:532
532     {
(gdb) bt
#0  0x000000000073c6bf in cp_gimplify_expr (expr_p=0x7ffff4f5ae28,
pre_p=0x7ffffbfff7f8, post_p=0x7ffffbfff460) at
../../gcc/gcc/cp/cp-gimplify.c:532
#1  0x00000000009a085c in gimplify_expr (expr_p=expr_p@entry=0x7ffff4f5ae28,
pre_p=pre_p@entry=0x7ffffbfff7f8, post_p=<optimized out>,
post_p@entry=0x7ffffbfff460, 
    gimple_test_f=0x9819e0 <is_gimple_min_lval(tree_node*)>,
fallback=fallback@entry=3) at ../../gcc/gcc/gimplify.c:7350
#2  0x00000000009a83fc in gimplify_compound_lval
(expr_p=expr_p@entry=0x7ffff54d0ab8, pre_p=pre_p@entry=0x7ffffbfff7f8,
post_p=post_p@entry=0x7ffffbfff460, 
    fallback=fallback@entry=3) at ../../gcc/gcc/gimplify.c:1976
#3  0x00000000009a0ea7 in gimplify_expr (expr_p=expr_p@entry=0x7ffff54d0ab8,
pre_p=pre_p@entry=0x7ffffbfff7f8, post_p=<optimized out>, 
    gimple_test_f=gimple_test_f@entry=0x9986d0 <is_gimple_addressable(tree)>,
fallback=fallback@entry=3) at ../../gcc/gcc/gimplify.c:7393
#4  0x00000000009ac5e2 in gimplify_addr_expr
(expr_p=expr_p@entry=0x7fffee5c11f0, pre_p=pre_p@entry=0x7ffffbfff7f8,
post_p=post_p@entry=0x7ffffbfff460)
    at ../../gcc/gcc/gimplify.c:4794
#5  0x00000000009a2ac2 in gimplify_expr (expr_p=0x7fffee5c11f0,
pre_p=pre_p@entry=0x7ffffbfff7f8, post_p=<optimized out>, post_p@entry=0x0, 
    gimple_test_f=0x9815e0 <is_gimple_val(tree_node*)>, fallback=<optimized
out>) at ../../gcc/gcc/gimplify.c:7487
#6  0x00000000009acc5c in gimplify_arg (arg_p=<optimized out>,
pre_p=pre_p@entry=0x7ffffbfff7f8, call_location=<optimized out>) at
../../gcc/gcc/gimplify.c:2184
#7  0x00000000009ae09a in gimplify_call_expr
(expr_p=expr_p@entry=0x7fffef5b4a58, pre_p=pre_p@entry=0x7ffffbfff7f8,
want_value=<optimized out>)
    at ../../gcc/gcc/gimplify.c:2354
#8  0x00000000009a1c35 in gimplify_expr (expr_p=0x7fffef5b4a58,
pre_p=pre_p@entry=0x7ffffbfff7f8, post_p=<optimized out>, post_p@entry=0x0, 
    gimple_test_f=gimple_test_f@entry=0x99a6e0 <is_gimple_stmt(tree)>,
fallback=fallback@entry=0) at ../../gcc/gcc/gimplify.c:7412
#9  0x00000000009a59a7 in gimplify_stmt (stmt_p=<optimized out>,
seq_p=seq_p@entry=0x7ffffbfff7f8) at ../../gcc/gcc/gimplify.c:5334
#10 0x00000000009a1cdb in gimplify_cleanup_point_expr (pre_p=0x7ffffbfffad8,
expr_p=0x7fffef5aef40) at ../../gcc/gcc/gimplify.c:5110
#11 gimplify_expr (expr_p=0x7fffef5aef40, pre_p=pre_p@entry=0x7ffffbfffad8,
post_p=<optimized out>, post_p@entry=0x0, 
    gimple_test_f=gimple_test_f@entry=0x99a6e0 <is_gimple_stmt(tree)>,
fallback=fallback@entry=0) at ../../gcc/gcc/gimplify.c:7797
#12 0x00000000009a59a7 in gimplify_stmt (stmt_p=<optimized out>,
seq_p=seq_p@entry=0x7ffffbfffad8) at ../../gcc/gcc/gimplify.c:5334
#13 0x00000000009a1a5c in gimplify_statement_list (pre_p=0x7ffffbfffad8,
expr_p=0x7ffffbfffac0) at ../../gcc/gcc/gimplify.c:1405
#14 gimplify_expr (expr_p=0x7ffffbfffac0, pre_p=pre_p@entry=0x7ffffbfffad8,
post_p=<optimized out>, post_p@entry=0x0, 
    gimple_test_f=gimple_test_f@entry=0x99a6e0 <is_gimple_stmt(tree)>,
fallback=fallback@entry=0) at ../../gcc/gcc/gimplify.c:7849
#15 0x00000000009a59a7 in gimplify_stmt (stmt_p=stmt_p@entry=0x7ffffbfffac0,
seq_p=seq_p@entry=0x7ffffbfffad8) at ../../gcc/gcc/gimplify.c:5334
#16 0x00000000009a2b80 in gimplify_and_add (seq_p=0x7ffffbfffad8,
t=0x7fffef5b4a00) at ../../gcc/gcc/gimplify.c:384
#17 gimplify_expr (expr_p=0x7fffef5aef28, pre_p=pre_p@entry=0x7ffffbfffdb8,
post_p=<optimized out>, post_p@entry=0x0, 
    gimple_test_f=gimple_test_f@entry=0x99a6e0 <is_gimple_stmt(tree)>,
fallback=fallback@entry=0) at ../../gcc/gcc/gimplify.c:7771
#18 0x00000000009a59a7 in gimplify_stmt (stmt_p=<optimized out>,
seq_p=seq_p@entry=0x7ffffbfffdb8) at ../../gcc/gcc/gimplify.c:5334
#19 0x00000000009a1a5c in gimplify_statement_list (pre_p=0x7ffffbfffdb8,
expr_p=0x7ffffbfffda0) at ../../gcc/gcc/gimplify.c:1405
#20 gimplify_expr (expr_p=0x7ffffbfffda0, pre_p=pre_p@entry=0x7ffffbfffdb8,
post_p=<optimized out>, post_p@entry=0x0, 
    gimple_test_f=gimple_test_f@entry=0x99a6e0 <is_gimple_stmt(tree)>,
fallback=fallback@entry=0) at ../../gcc/gcc/gimplify.c:7849
#21 0x00000000009a59a7 in gimplify_stmt (stmt_p=stmt_p@entry=0x7ffffbfffda0,
seq_p=seq_p@entry=0x7ffffbfffdb8) at ../../gcc/gcc/gimplify.c:5334
#22 0x00000000009a2b80 in gimplify_and_add (seq_p=0x7ffffbfffdb8,
t=0x7fffef5b4940) at ../../gcc/gcc/gimplify.c:384
#23 gimplify_expr (expr_p=0x7fffef5aeef8, pre_p=pre_p@entry=0x7ffffc000098,
post_p=<optimized out>, post_p@entry=0x0, 
...

==25997== Stack overflow in thread 1: can't grow stack to 0xffe801ff8
==25997== Can't extend stack to 0xffe8010a8 during signal delivery for thread
1:
==25997==   no stack segment
==25997== 
==25997== Process terminating with default action of signal 11 (SIGSEGV)
==25997==  Access not within mapped region at address 0xFFE8010A8
==25997==    at 0xAB2999: pointer_set_insert(pointer_set_t*, void const*)
(pointer-set.c:123)

Perf shows:
 76.68%  cc1plus  libc-2.18.90.so [.] _wordcopy_fwd_aligned
  2.68%  cc1plus  cc1plus         [.] walk_tree_1(tree_node**, tree_node*
(*)(tree_node**, int*, void*), void*, pointer_set_t*, tree_node*
(*)(tree_node**, int*, tree_node
  1.57%  cc1plus  cc1plus         [.] pointer_set_lookup(pointer_set_t const*,
void const*, unsigned long*)
  0.88%  cc1plus  cc1plus         [.] cp_genericize_r(tree_node**, int*, void*)
  0.71%  cc1plus  cc1plus         [.] gt_ggc_mx_lang_tree_node(void*)
  0.69%  cc1plus  libc-2.18.90.so [.] memset
  0.64%  cc1plus  cc1plus         [.] pointer_set_insert(pointer_set_t*, void
const*)


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

* [Bug c++/59752] Stack overflow on simple testcase
  2014-01-10 10:02 [Bug middle-end/59752] New: Stack overflow on simple testcase trippels at gcc dot gnu.org
@ 2014-01-15 20:52 ` trippels at gcc dot gnu.org
  0 siblings, 0 replies; 2+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-01-15 20:52 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59752

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |FIXED

--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Fixed by r206639.


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

end of thread, other threads:[~2014-01-15 20:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-10 10:02 [Bug middle-end/59752] New: Stack overflow on simple testcase trippels at gcc dot gnu.org
2014-01-15 20:52 ` [Bug c++/59752] " trippels 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).