public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Martin Sebor <msebor@gmail.com>
To: Marek Polacek <polacek@redhat.com>, Jason Merrill <jason@redhat.com>
Cc: Jakub Jelinek <jakub@redhat.com>, GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: C++ PATCH to fix missing warning (PR c++/70194)
Date: Thu, 17 Mar 2016 00:43:00 -0000	[thread overview]
Message-ID: <56E9FDBB.5070903@gmail.com> (raw)
In-Reply-To: <20160316144552.GG10006@redhat.com>

> @@ -3974,6 +3974,38 @@ build_vec_cmp (tree_code code, tree type,
>     return build3 (VEC_COND_EXPR, type, cmp, minus_one_vec, zero_vec);
>   }
>
> +/* Possibly warn about an address never being NULL.  */
> +
> +static void
> +warn_for_null_address (location_t location, tree op, tsubst_flags_t complain)
> +{
...
> +  if (TREE_CODE (cop) == ADDR_EXPR
> +      && decl_with_nonnull_addr_p (TREE_OPERAND (cop, 0))
> +      && !TREE_NO_WARNING (cop))
> +    warning_at (location, OPT_Waddress, "the address of %qD will never "
> +		"be NULL", TREE_OPERAND (cop, 0));
> +
> +  if (CONVERT_EXPR_P (op)
> +      && TREE_CODE (TREE_TYPE (TREE_OPERAND (op, 0))) == REFERENCE_TYPE)
> +    {
> +      tree inner_op = op;
> +      STRIP_NOPS (inner_op);
> +
> +      if (DECL_P (inner_op))
> +	warning_at (location, OPT_Waddress,
> +		    "the compiler can assume that the address of "
> +		    "%qD will never be NULL", inner_op);

Since I noted the subtle differences between the phrasing of
the various -Waddress warnings in the bug, I have to ask: what is
the significance of the difference between the two warnings here?

Would it not be appropriate to issue the first warning in the latter
case?  Or perhaps even use the same text as is already used elsewhere:
"the address of %qD will always evaluate as ‘true’" (since it may not
be the macro NULL that's mentioned in the expression).

Martin

  parent reply	other threads:[~2016-03-17  0:43 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-15 10:41 Marek Polacek
2016-03-15 10:56 ` Jakub Jelinek
2016-03-15 12:09   ` Marek Polacek
2016-03-15 19:41     ` Jason Merrill
2016-03-16 14:46       ` Marek Polacek
2016-03-16 19:44         ` Jason Merrill
2016-03-17  0:43         ` Martin Sebor [this message]
2016-03-17 16:33           ` Jeff Law
2016-03-17 16:49             ` Patrick Palka
2016-03-17 18:58               ` Martin Sebor
2016-03-17 19:17                 ` Jason Merrill
2016-03-18  0:33                   ` Martin Sebor
2016-03-17 16:45           ` Marek Polacek
2016-03-17 16:47           ` Jason Merrill
2016-03-17 16:49             ` Jeff Law

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56E9FDBB.5070903@gmail.com \
    --to=msebor@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jakub@redhat.com \
    --cc=jason@redhat.com \
    --cc=polacek@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).