[Bug c++/56757] New: ICE in int_cst_value/get_non_default_template_args_count on invalid source
ppluzhnikov at google dot com
gcc-bugzilla@gcc.gnu.org
Wed Mar 27 21:20:00 GMT 2013
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: unassigned@gcc.gnu.org
ReportedBy: ppluzhnikov@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 ()
More information about the Gcc-bugs
mailing list