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)