[Bug c++/72764] [5/6/7 Regression] ICE on invalid C++11 code instantiating an alias template: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in typedef_variant_p, at tree.c:12660

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Dec 20 15:27:00 GMT 2016


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |jason at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Seems both make_typename_type and finish_decltype_type can return
error_mark_node even if the arguments passed to those aren't error_mark_node
(as they are called tf_none, no diagnostics is emitted).
The question is what strip_typedefs should do if that happens?  Shall it return
error_mark_node, or the original type, something different?  The end of the
function assumes that result is a valid type.


More information about the Gcc-bugs mailing list