From: Jason Merrill Date: Wed, 17 Jan 2018 17:44:42 +0000 (-0500) Subject: PR c++/81067 - redundant NULL warning. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d2edcd7083601bc08789787331399624b85b843b;p=gcc.git PR c++/81067 - redundant NULL warning. * call.c (convert_like_real): Restore null_node handling. From-SVN: r256803 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ff09fe32fdb..bdcac476385 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2018-01-17 Jason Merrill + + PR c++/81067 - redundant NULL warning. + * call.c (convert_like_real): Restore null_node handling. + 2018-01-17 Jason Merrill PR c++/81843 - ICE with variadic member template. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index f5542850cea..1f326d5c1ad 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -6804,6 +6804,12 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum, if (type_unknown_p (expr)) expr = instantiate_type (totype, expr, complain); + if (expr == null_node + && INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (totype)) + /* If __null has been converted to an integer type, we do not want to + continue to warn about uses of EXPR as an integer, rather than as a + pointer. */ + expr = build_int_cst (totype, 0); return expr; case ck_ambig: /* We leave bad_p off ck_ambig because overload resolution considers