[Bug c++/89814] New: [9 Regression] ICE (segfault) with -Wduplicated-cond
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 25 09:39:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89814
Bug ID: 89814
Summary: [9 Regression] ICE (segfault) with -Wduplicated-cond
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Keywords: diagnostic, ice-on-valid-code
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
Target Milestone: ---
GCC 9.0.1 20190325/x86_64-pc-linux-gnu
now segfaults with "g++ -Wduplicated-cond" - it worked about a week ago.
The real-world fail is in:
gcc-trunk/include/c++/9.0.1/bits/stl_iterator_base_funcs.h: In function
‘constexpr void std::__advance(_RandomAccessIterator&, _Distance,
std::random_access_iterator_tag)’:
gcc-trunk/include/c++/9.0.1/bits/stl_iterator_base_funcs.h:182:54: internal
compiler error: Segmentation fault
Backtrace of the fail below:
0xfadc8f crash_signal
../../gcc/toplev.c:326
0xcabedc operand_equal_p(tree_node const*, tree_node const*, unsigned int)
../../gcc/fold-const.c:2977
0xcac09a operand_equal_p(tree_node const*, tree_node const*, unsigned int)
../../gcc/fold-const.c:2950
0xb1d951 warn_duplicated_cond_add_or_warn(unsigned int, tree_node*,
vec<tree_node*, va_heap, vl_ptr>**)
../../gcc/c-family/c-warn.c:2318
0x9d4b05 cp_parser_selection_statement
../../gcc/cp/parser.c:11809
//----------------------
struct forward_iterator_tag { };
struct random_access_iterator_tag { };
template < typename _RandomAccessIterator,
typename _Distance >
inline constexpr void
__advance (_RandomAccessIterator & __i, _Distance __n,
random_access_iterator_tag)
{
if (__builtin_constant_p (__n) && __n == 1)
++__i;
else if (__builtin_constant_p (__n) && __n == -1)
--__i;
else
__i += __n;
}
More information about the Gcc-bugs
mailing list