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

            Bug ID: 57545
           Summary: Generation of debug symbols leads to internal compiler
                    error
           Product: gcc
           Version: 4.8.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: g...@severin-strobl.de

Created attachment 30269
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30269&action=edit
test case leading to internal compiler error

Enabling the generation of debug symbols leads to an internal compiler error
(segmentation fault). A preprocessed minimal example is attached. The problem
is reproducible in g++ versions 4.7.2, 4.7.3, 4.8.0 and 4.8.1. Version 4.7.1 is
the last version where I did not encounter any problems.

// code
template<typename T, long unsigned int N>
struct array {
    T data[N];
};

template<typename T>
struct derived {
    typedef long unsigned int size_type;
    static const size_type n = 42;

    array<int, n> a;
};

// compile
$ g++ -g -Wall -Wextra -save-temps test-case.cpp
test-case.cpp:12:2: internal compiler error: Segmentation fault
 };
  ^
0x89f8ff crash_signal
    ../../gcc-4.8.1/gcc/toplev.c:332
0x897567 bit_from_pos(tree_node*, tree_node*)
    ../../gcc-4.8.1/gcc/stor-layout.c:799
0x6ad653 field_byte_offset
    ../../gcc-4.8.1/gcc/dwarf2out.c:14351
0x6b72e9 add_data_member_location_attribute
    ../../gcc-4.8.1/gcc/dwarf2out.c:14577
0x6c3c89 gen_field_die
    ../../gcc-4.8.1/gcc/dwarf2out.c:18697
0x6bfa4f gen_decl_die
    ../../gcc-4.8.1/gcc/dwarf2out.c:20072
0x6c0d37 gen_member_die
    ../../gcc-4.8.1/gcc/dwarf2out.c:19031
0x6c0d37 gen_struct_or_union_type_die
    ../../gcc-4.8.1/gcc/dwarf2out.c:19117
0x6c0d37 gen_tagged_type_die
    ../../gcc-4.8.1/gcc/dwarf2out.c:19307
0x6c1a2e gen_type_die_with_usage
    ../../gcc-4.8.1/gcc/dwarf2out.c:19454
0x6c2142 gen_type_die
    ../../gcc-4.8.1/gcc/dwarf2out.c:19493
0x6c2142 modified_type_die
    ../../gcc-4.8.1/gcc/dwarf2out.c:10163
0x6c2f70 force_type_die
    ../../gcc-4.8.1/gcc/dwarf2out.c:19789
0x6c37f9 get_context_die
    ../../gcc-4.8.1/gcc/dwarf2out.c:19704
0x6c37f9 scope_die_for
    ../../gcc-4.8.1/gcc/dwarf2out.c:16419
0x6c15d9 gen_type_die_with_usage
    ../../gcc-4.8.1/gcc/dwarf2out.c:19349
0x6c2ebe gen_type_die
    ../../gcc-4.8.1/gcc/dwarf2out.c:19493
0x6c2ebe modified_type_die
    ../../gcc-4.8.1/gcc/dwarf2out.c:10095
0x6c3a2b add_type_attribute
    ../../gcc-4.8.1/gcc/dwarf2out.c:16497
0x6bad18 generic_parameter_die
    ../../gcc-4.8.1/gcc/dwarf2out.c:10356

$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/apps/gcc/gcc-4.8.1/libexec/gcc/x86_64-pc-linux-gnu/4.8.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-4.8.1/configure --prefix=/apps/gcc/gcc-4.8.1
--build=x86_64-pc-linux-gnu --enable-bootstrap --enable-checking=release
--enable-__cxa_atexit --enable-languages=c,c++,fortran --enable-libgomp
--enable-libmudflap --enable-lto --enable-multilib --enable-nls --enable-shared
--enable-threads=posix --with-system-zlib --enable-cloog-backend=isl
--with-cloog=/home/hpc/severin/apps/cloog/cloog-0.18.0
--with-cloog-include=/home/hpc/severin/apps/cloog/cloog-0.18.0/include/
--with-ppl=/home/hpc/severin/apps/ppl/ppl-1.0
Thread model: posix
gcc version 4.8.1 (GCC)

Reply via email to