This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH/RFC] C++ FE: expression ranges (v2)
- From: Jakub Jelinek <jakub at redhat dot com>
- To: David Malcolm <dmalcolm at redhat dot com>
- Cc: Richard Biener <richard dot guenther at gmail dot com>, Jason Merrill <jason at redhat dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 23 Nov 2015 17:57:54 +0100
- Subject: Re: [PATCH/RFC] C++ FE: expression ranges (v2)
- Authentication-results: sourceware.org; auth=none
- References: <1446868737-3306-1-git-send-email-dmalcolm at redhat dot com> <1447563717-24429-1-git-send-email-dmalcolm at redhat dot com> <564E3512 dot 9080701 at redhat dot com> <56501A61 dot 6010806 at redhat dot com> <20151121082151 dot GQ5675 at tucnak dot redhat dot com> <CAFiYyc2WLXynEPXr1cOE=Me+wposZXXuGuifWDm71oF2heARBQ at mail dot gmail dot com> <1448297620 dot 19594 dot 168 dot camel at surprise>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Mon, Nov 23, 2015 at 11:53:40AM -0500, David Malcolm wrote:
> Does the following look like the kind of thing you had in mind? (just
> the tree.def part for now). Presumably usable for both lvalues and
> rvalues, where the thing it wraps is what's important. It merely exists
> to add an EXPR_LOCATION, for a usage of the wrapped thing.
Yes, but please see with Jason, Richard and perhaps others if they are ok
with that too before spending too much time in that direction.
All occurrences of it would have to be folded away during the gimplification
at latest, this shouldn't be something we use in the middle-end.
> diff --git a/gcc/tree.def b/gcc/tree.def
> index 44e5a5e..30fd766 100644
> --- a/gcc/tree.def
> +++ b/gcc/tree.def
> @@ -1407,6 +1407,13 @@ DEFTREECODE (CILK_SPAWN_STMT, "cilk_spawn_stmt", tcc_statement, 1)
> /* Cilk Sync statement: Does not have any operands. */
> DEFTREECODE (CILK_SYNC_STMT, "cilk_sync_stmt", tcc_statement, 0)
>
> +/* Wrapper to add a source code location to an expression, either one
> + that doesn't have one (such as an INTEGER_CST), or to a usage of a
> + variable (e.g. PARAM_DECL or VAR_DECL), where we want to record
> + the site in the source where the variable was *used* rather than
> + where it was declared. */
> +DEFTREECODE (LOCATION_EXPR, "location_expr", tcc_unary, 1)
> +
> /*
> Local variables:
> mode:c
Jakub