[Bug c++/68728] New: ice: unexpected expression ‘?=(const char*)=?UTF-8?Q?__s’ of kind implicit_conv_expr

regehr at cs dot utah.edu gcc-bugzilla@gcc.gnu.org
Sat Dec 5 19:01:00 GMT 2015


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

            Bug ID: 68728
           Summary: ice: unexpected expression ‘(const char*)__s’ of kind
                    implicit_conv_expr
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: regehr at cs dot utah.edu
  Target Milestone: ---

ICE on invalid code

$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/home/regehr/z/compiler-install/gcc-r231259-install/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/regehr/z/compiler-source/gcc/configure
--prefix=/home/regehr/z/compiler-install/gcc-r231259-install
--disable-bootstrap --disable-multilib --enable-languages=c,c++
Thread model: posix
gcc version 6.0.0 20151204 (experimental) (GCC) 


$ cat hello.cpp
template < _CharT > fn1 ( char __s ):( __builtin_strcmp ( __s, "" )


$ g++ -w -std=c++11 hello.cpp
hello.cpp:1:12: error: ‘_CharT’ has not been declared
 template < _CharT > fn1 ( char __s ):( __builtin_strcmp ( __s, "" )
            ^~~~~~

hello.cpp:1:36: error: ISO C++ forbids declaration of ‘fn1’ with no type
[-fpermissive]
 template < _CharT > fn1 ( char __s ):( __builtin_strcmp ( __s, "" )
                                    ^

hello.cpp: In function ‘int fn1(char)’:
hello.cpp:1:38: error: only constructors take member initializers
 template < _CharT > fn1 ( char __s ):( __builtin_strcmp ( __s, "" )
                                      ^

hello.cpp:1:38: error: anachronistic old-style base class initializer
[-fpermissive]
hello.cpp:1:67: internal compiler error: unexpected expression ‘(const
char*)__s’ of kind implicit_conv_expr
 template < _CharT > fn1 ( char __s ):( __builtin_strcmp ( __s, "" )
                                                                   ^

0x7ef982 cxx_eval_constant_expression
        /home/regehr/z/compiler-source/gcc/gcc/cp/constexpr.c:3719
0x7f3b44 cxx_eval_outermost_constant_expr
        /home/regehr/z/compiler-source/gcc/gcc/cp/constexpr.c:3774
0x7f6875 maybe_constant_value_1
        /home/regehr/z/compiler-source/gcc/gcc/cp/constexpr.c:3960
0x7f6875 maybe_constant_value(tree_node*, tree_node*)
        /home/regehr/z/compiler-source/gcc/gcc/cp/constexpr.c:3981
0x5a2ee5 build_cxx_call(tree_node*, int, tree_node**, int)
        /home/regehr/z/compiler-source/gcc/gcc/cp/call.c:7724
0x7182ea cp_build_function_call_vec(tree_node*, vec<tree_node*, va_gc,
vl_embed>**, int)
        /home/regehr/z/compiler-source/gcc/gcc/cp/typeck.c:3593
0x5bb291 build_new_function_call(tree_node*, vec<tree_node*, va_gc,
vl_embed>**, bool, int)
        /home/regehr/z/compiler-source/gcc/gcc/cp/call.c:4104
0x75c95e finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool,
bool, int)
        /home/regehr/z/compiler-source/gcc/gcc/cp/semantics.c:2403
0x6d0e6b cp_parser_postfix_expression
        /home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:6656
0x6daf08 cp_parser_unary_expression
        /home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:7688
0x6dbc58 cp_parser_binary_expression
        /home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:8442
0x6dc51f cp_parser_assignment_expression
        /home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:8712
0x6de608 cp_parser_parenthesized_expression_list
        /home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:7185
0x6ef7ad cp_parser_mem_initializer
        /home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:13180
0x6ef7ad cp_parser_mem_initializer_list
        /home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:13063
0x6ef7ad cp_parser_ctor_initializer_opt
        /home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:13032
0x6ef7ad cp_parser_ctor_initializer_opt_and_function_body
        /home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:20215
0x6f0286 cp_parser_function_definition_after_declarator
        /home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:24838
0x6f109a cp_parser_function_definition_from_specifiers_and_declarator
        /home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:24750
0x6f109a cp_parser_init_declarator
        /home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:17974
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.


More information about the Gcc-bugs mailing list