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

--- Comment #1 from John David Anglin <danglin at gcc dot gnu.org> ---
(gdb) r
Starting program: /test/gnu/gcc/objdir/stage1-gcc/cc1 -fpreprocessed
limits-exprparen.i -quiet -dumpbase limits-exprparen.c -auxbase-strip
limits-exprparen.o -O0 -w -version -fdiagnostics-color=never
-fno-diagnostics-show-caret -o limits-exprparen.s
warning: Private mapping of shared library text was not specified
by the executable; setting a breakpoint in a shared library which
is not privately mapped will not work.  See the HP-UX 11i v3 chatr
manpage for methods to privately map shared library text.
GNU C11 (GCC) version 6.0.0 20160201 (experimental) [trunk revision 233038]
(hppa2.0w-hp-hpux11.11)
        compiled by GNU C version 5.2.1 20150716 [gcc-5-branch revision
225904], GMP version 6.0.0, MPFR version 3.1.3, MPC version 1.0.3, isl version
none
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C11 (GCC) version 6.0.0 20160201 (experimental) [trunk revision 233038]
(hppa2.0w-hp-hpux11.11)
        compiled by GNU C version 5.2.1 20150716 [gcc-5-branch revision
225904], GMP version 6.0.0, MPFR version 3.1.3, MPC version 1.0.3, isl version
none
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: f2dd5e0bce1bf74507a5dd14a956b7c9

Pid 7906 received a SIGSEGV for stack growth failure.
Possible causes: insufficient memory or swap space,
or stack size exceeded maxssiz.

Program received signal SIGSEGV, Segmentation fault.
0x00185078 in _ZL19c_parser_peek_tokenP8c_parser (parser=0x0)
    at ../../gcc/gcc/c/c-parser.c:452
452     {
(gdb) bt
Python Exception <type 'exceptions.ImportError'> Failed to load
/home/gnu/lib/python2.7/lib-dynload/itertools.sl:
#0  0x00185078 in _ZL19c_parser_peek_tokenP8c_parser (parser=0x0)
    at ../../gcc/gcc/c/c-parser.c:452
#1  0x0019a734 in _ZL24c_parser_cast_expressionP8c_parserP6c_expr (
    parser=0x7aead000, after=0x0) at ../../gcc/gcc/c/c-parser.c:6653
#2  0x0019950c in _ZL26c_parser_binary_expressionP8c_parserP6c_exprP9tree_node
    (parser=0x7aead000, after=0x0, omp_atomic_lhs=0x0)
    at ../../gcc/gcc/c/c-parser.c:6508
#3  0x00198980 in
_ZL31c_parser_conditional_expressionP8c_parserP6c_exprP9tree_node
(parser=0x7aead000, after=0x0, omp_atomic_lhs=0x0)
    at ../../gcc/gcc/c/c-parser.c:6279
#4  0x00198460 in _ZL23c_parser_expr_no_commasP8c_parserP6c_exprP9tree_node (
    parser=0x7aead000, after=0x0, omp_atomic_lhs=0x0)
    at ../../gcc/gcc/c/c-parser.c:6196
#5  0x001a33a0 in _ZL19c_parser_expressionP8c_parser (parser=0x7aead000)
    at ../../gcc/gcc/c/c-parser.c:8381
#6  0x0019e7c8 in _ZL27c_parser_postfix_expressionP8c_parser (
    parser=0x7aead000) at ../../gcc/gcc/c/c-parser.c:7522
#7  0x0019badc in _ZL25c_parser_unary_expressionP8c_parser (parser=0x7aead000)
    at ../../gcc/gcc/c/c-parser.c:6870
#8  0x0019aab0 in _ZL24c_parser_cast_expressionP8c_parserP6c_expr (
    parser=0x7aead000, after=0x0) at ../../gcc/gcc/c/c-parser.c:6699
#9  0x0019950c in _ZL26c_parser_binary_expressionP8c_parserP6c_exprP9tree_node
    (parser=0x7aead000, after=0x0, omp_atomic_lhs=0x0)
---Type <return> to continue, or q <return> to quit---
    at ../../gcc/gcc/c/c-parser.c:6508
#10 0x00198980 in
_ZL31c_parser_conditional_expressionP8c_parserP6c_exprP9tree_node
(parser=0x7aead000, after=0x0, omp_atomic_lhs=0x0)
    at ../../gcc/gcc/c/c-parser.c:6279
#11 0x00198460 in _ZL23c_parser_expr_no_commasP8c_parserP6c_exprP9tree_node (
    parser=0x7aead000, after=0x0, omp_atomic_lhs=0x0)
    at ../../gcc/gcc/c/c-parser.c:6196
#12 0x001a33a0 in _ZL19c_parser_expressionP8c_parser (parser=0x7aead000)
    at ../../gcc/gcc/c/c-parser.c:8381
#13 0x0019e7c8 in _ZL27c_parser_postfix_expressionP8c_parser (
    parser=0x7aead000) at ../../gcc/gcc/c/c-parser.c:7522
#14 0x0019badc in _ZL25c_parser_unary_expressionP8c_parser (parser=0x7aead000)
    at ../../gcc/gcc/c/c-parser.c:6870
#15 0x0019aab0 in _ZL24c_parser_cast_expressionP8c_parserP6c_expr (
    parser=0x7aead000, after=0x0) at ../../gcc/gcc/c/c-parser.c:6699
#16 0x0019950c in _ZL26c_parser_binary_expressionP8c_parserP6c_exprP9tree_node
    (parser=0x7aead000, after=0x0, omp_atomic_lhs=0x0)
    at ../../gcc/gcc/c/c-parser.c:6508
#17 0x00198980 in
_ZL31c_parser_conditional_expressionP8c_parserP6c_exprP9tree_node
(parser=0x7aead000, after=0x0, omp_atomic_lhs=0x0)
    at ../../gcc/gcc/c/c-parser.c:6279
#18 0x00198460 in _ZL23c_parser_expr_no_commasP8c_parserP6c_exprP9tree_node (
    parser=0x7aead000, after=0x0, omp_atomic_lhs=0x0)
[...]

We have similar backtrace with stage3 compuler.

(gdb) p *parser
$1 = {tokens = 0x7aead004, tokens_buf = {{type = CPP_OPEN_PAREN,
      id_kind = C_ID_NONE, keyword = RID_MAX, pragma_kind = PRAGMA_NONE,
      location = 151584, value = 0x0}, {type = CPP_OPEN_PAREN,
      id_kind = C_ID_NONE, keyword = RID_MAX, pragma_kind = PRAGMA_NONE,
      location = 151584, value = 0x0}, {type = CPP_EQ, id_kind = C_ID_ID,
      keyword = RID_STATIC, pragma_kind = PRAGMA_NONE, location = 0,
      value = 0x0}, {type = CPP_EQ, id_kind = C_ID_ID, keyword = RID_STATIC,
      pragma_kind = PRAGMA_NONE, location = 0, value = 0x0}},
  tokens_avail = 1, error = 0, in_pragma = 0, in_if_block = 0,
  lex_untranslated_string = 0, objc_pq_context = 0,
  objc_could_be_foreach_context = 0, objc_need_raw_identifier = 0,
  in_transaction = 0, objc_property_attr_context = 0,
  cilk_simd_fn_tokens = 0x0}
(gdb) p *parser->tokens
$3 = {type = CPP_OPEN_PAREN, id_kind = C_ID_NONE, keyword = RID_MAX,
  pragma_kind = PRAGMA_NONE, location = 151584, value = 0x0}

Total stack per bracket appears to be 1984 bytes and we appear to have
a million brackets.

Reply via email to