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

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
      Known to work|                            |4.7.3, 5.0
   Last reconfirmed|                            |2014-09-12
          Component|c++                         |middle-end
                 CC|                            |trippels at gcc dot gnu.org
     Ever confirmed|0                           |1
            Summary|x86_64-pc-linux-gnu-g++:    |[4.9 regression] internal
                   |internal compiler error:    |compiler error:
                   |Segmentation fault (program |Segmentation fault (program
                   |cc1plus)                    |cc1plus)
   Target Milestone|---                         |4.9.3
      Known to fail|                            |4.9.2

--- Comment #4 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
markus@x4 tmp % cat context.ii
namespace std {
template <typename>
void declval();
class A;
}
namespace detail {
template <typename...>
class iterator_adaptor;
template <typename, typename, typename>
class basic_range;
template <typename T>
using preferred_iterator_type = decltype(std::declval<T>);
}
template <typename... Os>
class adaptor_range
    : detail::basic_range<
          adaptor_range<Os...>,
          detail::iterator_adaptor<detail::preferred_iterator_type<Os>...>,
          detail::iterator_adaptor<detail::preferred_iterator_type<Os>...>> {};
template <typename>
using property_list = std::A;
class B {
  B(const property_list<int>& p1, const adaptor_range<int, int>& p2);
};
B::B(const ::property_list<int>& p1, const adaptor_range<int, int>& p2) {}

markus@x4 tmp % gdb --args g++ -std=c++11 -c context.ii
Reading symbols from g++...done.
(gdb) run
Starting program: /usr/bin/g++ -std=c++11 -c context.ii
process 30304 is executing new program:
/usr/x86_64-pc-linux-gnu/gcc-bin/4.9.2/g++
[New process 30308]
process 30308 is executing new program:
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.2/cc1plus

Program received signal SIGSEGV, Segmentation fault.
[Switching to process 30308]
0x0000000000c2ffd6 in analyze_functions() ()
(gdb) bt
#0  0x0000000000c2ffd6 in analyze_functions() ()
#1  0x0000000000c2ed95 in finalize_compilation_unit() ()
#2  0x0000000000d2a2d4 in cp_write_global_declarations() ()
#3  0x0000000000c29020 in compile_file() [clone .lto_priv.2474] ()
#4  0x0000000000b6ccd7 in toplev_main(int, char**) ()
#5  0x00007ffff7741fd0 in __libc_start_main () from /lib/libc.so.6
#6  0x0000000000b66a93 in _start ()
(gdb)

Reply via email to