This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/81167] New: [8 Regression] ICE on valid C++ code in deferred_printed_type, at cp/error.c:118
- From: "marxin at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 22 Jun 2017 06:37:10 +0000
- Subject: [Bug c++/81167] New: [8 Regression] ICE on valid C++ code in deferred_printed_type, at cp/error.c:118
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
Bug ID: 81167
Summary: [8 Regression] ICE on valid C++ code in
deferred_printed_type, at cp/error.c:118
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
CC: dmalcolm at gcc dot gnu.org
Target Milestone: ---
Starting from r248698, we ICE on a clang test-case:
$ g++ PR31384.pass.cpp -Wconversion
PR31384.pass.cpp: In function ‘int main()’:
PR31384.pass.cpp:57:47: warning: choosing ‘Derived<T>::operator std::tuple<U>()
&& [with U = Implicit; T = int]’ over ‘constexpr
std::tuple<_Elements>::tuple(const std::tuple<_Args1 ...>&) [with _UElements =
{int}; _Dummy = void; typename std::enable_if<((std::_TC<((sizeof...
(_Elements) == sizeof... (_UElements)) && (!
std::is_same<std::tuple<_Elements>, std::tuple<_Args1 ...> >::value)),
_Elements ...>::_ConstructibleTuple<_UElements ...>() && std::_TC<((sizeof...
(_Elements) == sizeof... (_UElements)) && (!
std::is_same<std::tuple<_Elements>, std::tuple<_Args1 ...> >::value)),
_Elements ...>::_ImplicitlyConvertibleTuple<_UElements ...>()) &&
std::_TC<(std::is_same<_Dummy, void>::value && (sizeof... (_Elements) == 1)),
_Elements ...>::_NonNestedTuple<const tuple<_Args1 ...>&>()), bool>::type
<anonymous> = 1; _Elements = {Implicit}]’ [-Wconversion]
std::tuple<Implicit> foo = Derived<int>{42}; ((void)foo);
^
‘
in deferred_printed_type, at cp/error.c:118
0x6d1fc9 deferred_printed_type::deferred_printed_type(tree_node*, char const**,
bool, bool)
../../gcc/cp/error.c:118
0x6d1fc9 defer_phase_2_of_type_diff
../../gcc/cp/error.c:3985
0x6e0d17 cp_printer
../../gcc/cp/error.c:4062
0x15ff188 pp_format(pretty_printer*, text_info*)
../../gcc/pretty-print.c:679
0x15efe9e diagnostic_report_diagnostic(diagnostic_context*, diagnostic_info*)
../../gcc/diagnostic.c:974
0x15f026e diagnostic_impl
../../gcc/diagnostic.c:1099
0x15f05dc warning(int, char const*, ...)
../../gcc/diagnostic.c:1187
0x6043d6 joust
../../gcc/cp/call.c:10075
0x5fb52b joust
../../gcc/cp/call.c:9920
0x5fb52b build_over_call
../../gcc/cp/call.c:7623
0x600d4d convert_like_real
../../gcc/cp/call.c:6757
0x60117a convert_like_real
../../gcc/cp/call.c:6873
0x60c8a9 build_user_type_conversion(tree_node*, tree_node*, int, int)
../../gcc/cp/call.c:3995
0x67320b ocp_convert(tree_node*, tree_node*, int, int, int)
../../gcc/cp/cvt.c:889
0x6ecf75 expand_default_init
../../gcc/cp/init.c:1789
0x6ecf75 expand_aggr_init_1
../../gcc/cp/init.c:1968
0x6ed719 build_aggr_init(tree_node*, tree_node*, int, int)
../../gcc/cp/init.c:1706
0x68a1bf build_aggr_init_full_exprs
../../gcc/cp/decl.c:6128
0x68a1bf check_initializer
../../gcc/cp/decl.c:6276
0x6b509c cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
../../gcc/cp/decl.c:6995