https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93862
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Marek Polacek <mpola...@gcc.gnu.org>: https://gcc.gnu.org/g:4a305fa2fd4c9d553b26efa00f868aa1e4416a9f commit r10-6867-g4a305fa2fd4c9d553b26efa00f868aa1e4416a9f Author: Marek Polacek <pola...@redhat.com> Date: Mon Feb 24 14:43:48 2020 -0500 c++: Fix ICE with static_cast when converting from int[] [PR93862] This ICEs since my patch for P0388, which allowed conversions to arrays of unknown bound, but not the reverse, so these two static_casts are ill-formed. [expr.static.cast]/3 says that "cv1 T1" and "cv2 T2" have to be reference-compatible and the comment in build_static_cast_1 says it too but then we actually use reference_related_p... Fixed thus. 2020-02-26 Marek Polacek <pola...@redhat.com> PR c++/93862 - ICE with static_cast when converting from int[]. * call.c (reference_compatible_p): No longer static. * cp-tree.h (reference_compatible_p): Declare. * typeck.c (build_static_cast_1): Use reference_compatible_p instead of reference_related_p. * g++.dg/cpp0x/rv-cast7.C: New test.