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



             Bug #: 56757

           Summary: ICE in

                    int_cst_value/get_non_default_template_args_count on

                    invalid source

    Classification: Unclassified

           Product: gcc

           Version: unknown

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: c++

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: ppluzhni...@google.com





While doing creduce for something else, I noticed that current trunk (r197163)

dumped core on invalid reduction.



I then creduce'd the invalid to this gibberish:





/// --- cut ---

namespace std template < class, class > struct pair;

struct less struct _Select1st

        }

template < typename, typename, typename, typename, typename > class _Rb_tree;

namespace std template < typename _Key, typename _Compare = std:less,

        typename _Alloc >

class map

{

    typedef _Key key_type

    typedef std::pair < >value_type

    typedef _Compare key_compare

    typedef typename _Alloc::template rebind < value_type >::other

    _Pair_alloc_type

    typedef _Rb_tree < key_type, value_type, _Select1st,

            key_compare, _Pair_alloc_type > _Rep_type

            typedef typename _Rep_type::iterator iterator

            std::pair < iterator, bool > insert () return

/// --- cut ---





gdb -q cc1plus

(gdb) run pp1.ii 2> /dev/null



Program received signal SIGSEGV, Segmentation fault.

int_cst_value (x=0x0) at ../../gcc/tree.c:10248

10248     unsigned bits = TYPE_PRECISION (TREE_TYPE (x));

(gdb) bt

#0  int_cst_value (x=0x0) at ../../gcc/tree.c:10248

#1  0x00000000005e2ce5 in get_non_default_template_args_count

(args=0x7ffff605f800, flags=<optimized out>) at ../../gcc/cp/error.c:181

#2  0x00000000005eaf99 in dump_template_argument_list

(args=args@entry=0x7ffff605f800, flags=flags@entry=4) at

../../gcc/cp/error.c:190

#3  0x00000000005e4e10 in dump_decl (t=<optimized out>, flags=<optimized out>)

at ../../gcc/cp/error.c:1135

#4  0x00000000005eb689 in dump_typename (t=<optimized out>, flags=<optimized

out>) at ../../gcc/cp/error.c:571

#5  0x00000000005eb695 in dump_typename (t=0x7ffff60643f0, flags=4) at

../../gcc/cp/error.c:567

#6  0x00000000005eb35b in dump_template_parms (info=<optimized out>,

primary=<optimized out>, flags=4) at ../../gcc/cp/error.c:1647

#7  0x00000000005eb65b in dump_typename (t=0x7ffff6064738, flags=4) at

../../gcc/cp/error.c:569

#8  0x00000000005eb35b in dump_template_parms (info=<optimized out>,

primary=<optimized out>, flags=4) at ../../gcc/cp/error.c:1647

#9  0x00000000005e3eb6 in dump_type_prefix (t=<optimized out>, flags=4) at

../../gcc/cp/error.c:783

#10 0x00000000005ede8c in dump_function_decl (t=0x7ffff6052c00, flags=4) at

../../gcc/cp/error.c:1406

#11 0x00000000005ef7b1 in decl_as_string (decl=0x7ffff6052c00, flags=4) at

../../gcc/cp/error.c:2607

#12 0x0000000000696303 in cxx_printable_name_internal (decl=0x7ffff6052c00,

v=2, translate=<optimized out>) at ../../gcc/cp/tree.c:1879

#13 0x0000000000a80473 in announce_function (decl=<optimized out>) at

../../gcc/toplev.c:228

#14 0x000000000053aae5 in start_preparsed_function (decl1=0x7ffff6052c00,

attrs=<optimized out>, flags=<optimized out>) at ../../gcc/cp/decl.c:13071

#15 0x00000000005fe6cc in cp_parser_late_parsing_for_member

(member_function=0x7ffff6052c00, parser=0x7ffff60611b8) at

../../gcc/cp/parser.c:22419

#16 cp_parser_class_specifier_1 (parser=0x7ffff60611b8) at

../../gcc/cp/parser.c:18534

#17 cp_parser_class_specifier (parser=0x7ffff60611b8) at

../../gcc/cp/parser.c:18558

#18 cp_parser_type_specifier (parser=parser@entry=0x7ffff60611b8,

flags=flags@entry=1, decl_specs=decl_specs@entry=0x7fffffffd0f0,

is_declaration=is_declaration@entry=true,

declares_class_or_enum=declares_class_or_enum@entry=0x7fffffffd07c, 

    is_cv_qualifier=is_cv_qualifier@entry=0x7fffffffd07b) at

../../gcc/cp/parser.c:13641

#19 0x000000000061533a in cp_parser_decl_specifier_seq

(parser=parser@entry=0x7ffff60611b8, flags=flags@entry=1,

decl_specs=decl_specs@entry=0x7fffffffd0f0,

declares_class_or_enum=declares_class_or_enum@entry=0x7fffffffd0ec) at

../../gcc/cp/parser.c:10968

#20 0x00000000006193a4 in cp_parser_single_declaration

(parser=parser@entry=0x7ffff60611b8, checks=checks@entry=0x0,

member_p=member_p@entry=false,

explicit_specialization_p=explicit_specialization_p@entry=false,

friend_p=friend_p@entry=0x7fffffffd1bf)

    at ../../gcc/cp/parser.c:22014

#21 0x000000000061c153 in cp_parser_template_declaration_after_export

(parser=parser@entry=0x7ffff60611b8, member_p=<optimized out>) at

../../gcc/cp/parser.c:21899

#22 0x000000000061c9c0 in cp_parser_template_declaration

(parser=parser@entry=0x7ffff60611b8, member_p=member_p@entry=false) at

../../gcc/cp/parser.c:12190

#23 0x0000000000623aaa in cp_parser_declaration

(parser=parser@entry=0x7ffff60611b8) at ../../gcc/cp/parser.c:10377

#24 0x000000000062268e in cp_parser_declaration_seq_opt

(parser=parser@entry=0x7ffff60611b8) at ../../gcc/cp/parser.c:10299

#25 0x00000000006228a1 in cp_parser_namespace_body (parser=0x7ffff60611b8) at

../../gcc/cp/parser.c:15116

#26 cp_parser_namespace_definition (parser=0x7ffff60611b8) at

../../gcc/cp/parser.c:15097

#27 0x000000000062392e in cp_parser_declaration

(parser=parser@entry=0x7ffff60611b8) at ../../gcc/cp/parser.c:10401

#28 0x000000000062268e in cp_parser_declaration_seq_opt

(parser=parser@entry=0x7ffff60611b8) at ../../gcc/cp/parser.c:10299

#29 0x0000000000623f33 in cp_parser_translation_unit (parser=0x7ffff60611b8) at

../../gcc/cp/parser.c:3808

#30 c_parse_file () at ../../gcc/cp/parser.c:28281

#31 0x000000000072bdc5 in c_common_parse_file () at

../../gcc/c-family/c-opts.c:1046

#32 0x0000000000a7fd86 in compile_file () at ../../gcc/toplev.c:543

#33 0x0000000000a81c18 in do_compile () at ../../gcc/toplev.c:1876

#34 toplev_main (argc=2, argv=0x7fffffffd478) at ../../gcc/toplev.c:1952

#35 0x00007ffff6e5e76d in __libc_start_main (main=0x4fc670 <main(int, char**)>,

argc=2, ubp_av=0x7fffffffd478, init=<optimized out>, fini=<optimized out>,

rtld_fini=<optimized out>, stack_end=0x7fffffffd468) at libc-start.c:226

#36 0x00000000004fc6e1 in _start ()

Reply via email to