On Wed, Jun 30, 2021 at 7:37 AM Trevor Saunders <[email protected]> wrote:
>
> This simply confirms we can poison them in a small region.
>
> boostrapped and regtested on x86_64-linux-gnu, ok?
So this shows the approach doesn't really scale since it's necessarily
at most function-scope granularity rather than file-scope as possible
with the existing #pragma (maybe add the possibility to un-poison
identifiers or a push/pop mechanism).
> Trev
>
> gcc/ChangeLog:
>
> * gimple-range.cc (disable_ranger): Prevent access to cfun and
> input_location.
> ---
> gcc/gimple-range.cc | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/gcc/gimple-range.cc b/gcc/gimple-range.cc
> index 1851339c528..d4a3a6e46be 100644
> --- a/gcc/gimple-range.cc
> +++ b/gcc/gimple-range.cc
> @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
> #include "config.h"
> #include "system.h"
> #include "coretypes.h"
> +#include "poison.h"
> #include "backend.h"
> #include "tree.h"
> #include "gimple.h"
> @@ -509,6 +510,8 @@ enable_ranger (struct function *fun)
> void
> disable_ranger (struct function *fun)
> {
> + auto_poison<location_t> pil (input_location);
> + auto_poison<function *> pcfun (cfun_poison);
> delete fun->x_range_query;
>
> fun->x_range_query = &global_ranges;
> --
> 2.20.1
>