[Bug c++/68653] [6 Regression] ICE: in nonnull_arg_p, at tree.c:13853
mpolacek at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Dec 2 15:37:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68653
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mpolacek at gcc dot gnu.org
--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
We ICE on this assert:
gcc_assert (TREE_CODE (arg) == PARM_DECL && POINTER_TYPE_P (TREE_TYPE
(arg)));
because the type of arg is OFFSET_TYPE. Which is--in tree.def--described as "a
pointer relative to an object". So I guess we should allow OFFSET_TYPEs like
this:
--- gcc/tree.c
+++ gcc/tree.c
@@ -13850,7 +13850,9 @@ nonnull_arg_p (const_tree arg)
tree t, attrs, fntype;
unsigned HOST_WIDE_INT arg_num;
- gcc_assert (TREE_CODE (arg) == PARM_DECL && POINTER_TYPE_P (TREE_TYPE
(arg)));
+ gcc_assert (TREE_CODE (arg) == PARM_DECL
+ && (POINTER_TYPE_P (TREE_TYPE (arg))
+ || TREE_CODE (TREE_TYPE (arg)) == OFFSET_TYPE));
/* The static chain decl is always non null. */
if (arg == cfun->static_chain_decl)
More information about the Gcc-bugs
mailing list