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

            Bug ID: 84661
           Summary: internal compiler error: Segmentation fault
                    (strip_array_types())
           Product: gcc
           Version: 8.0.1
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vegard.nossum at gmail dot com
                CC: webrown.cpp at gmail dot com
  Target Milestone: ---

Input:

class {
  &a;
  b(decltype(((a = 0) || ((auto)))))
};

Output:

$ xgcc -x c++ -S -
<stdin>:2:4: error: ISO C++ forbids declaration of 'a' with no type
[-fpermissive]
<stdin>:3:28: error: expected primary-expression before 'auto'
<stdin>:3:28: error: expected ')' before 'auto'
<stdin>:3:37: error: expected ')' before '}' token
<stdin>:4:1: internal compiler error: Segmentation fault
0x3155789 crash_signal
        /home/vegard/git/gcc/gcc/toplev.c:325
0x400d828 strip_array_types(tree_node*)
        /home/vegard/git/gcc/gcc/tree.c:7932
0x139c9d0 cp_type_quals(tree_node const*)
        /home/vegard/git/gcc/gcc/cp/typeck.c:9585
0x136f3dc cv_unqualified(tree_node*)
        /home/vegard/git/gcc/gcc/cp/tree.c:1286
0xa4dc38 initialized_type
        /home/vegard/git/gcc/gcc/cp/constexpr.c:2707
0xa4dc38 cxx_eval_outermost_constant_expr
        /home/vegard/git/gcc/gcc/cp/constexpr.c:4794
0xa5b966 maybe_constant_value(tree_node*, tree_node*)
        /home/vegard/git/gcc/gcc/cp/constexpr.c:5044
0xaba942 cp_fully_fold(tree_node*)
        /home/vegard/git/gcc/gcc/cp/cp-gimplify.c:2040
0xec86a3 cp_parser_binary_expression
        /home/vegard/git/gcc/gcc/cp/parser.c:9298
0xec95aa cp_parser_assignment_expression
        /home/vegard/git/gcc/gcc/cp/parser.c:9484
0xecbaca cp_parser_expression
        /home/vegard/git/gcc/gcc/cp/parser.c:9653
0xf3833e cp_parser_primary_expression
        /home/vegard/git/gcc/gcc/cp/parser.c:5204
0xf7a2eb cp_parser_postfix_expression
        /home/vegard/git/gcc/gcc/cp/parser.c:7028
0xf2e057 cp_parser_unary_expression
        /home/vegard/git/gcc/gcc/cp/parser.c:8320
0xec31aa cp_parser_cast_expression
        /home/vegard/git/gcc/gcc/cp/parser.c:9088
0xec57d6 cp_parser_binary_expression
        /home/vegard/git/gcc/gcc/cp/parser.c:9189
0xec95aa cp_parser_assignment_expression
        /home/vegard/git/gcc/gcc/cp/parser.c:9484
0xecbaca cp_parser_expression
        /home/vegard/git/gcc/gcc/cp/parser.c:9653
0xf7d8a1 cp_parser_decltype_expr
        /home/vegard/git/gcc/gcc/cp/parser.c:14052
0xf7d8a1 cp_parser_decltype
        /home/vegard/git/gcc/gcc/cp/parser.c:14126

$ xgcc --version
xgcc (GCC) 8.0.1 20180301 (experimental)

Built from git c435a9e730c6e8f10da09d58b4fc9aaeb401b0d5 (r258097).

Seems present on 4.9.0 if you pass -std=c++14.

Test case was minimised by C-Reduce.

Reply via email to