https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115070

--- Comment #7 from Paul Thomas <pault at gcc dot gnu.org> ---
(In reply to Francois-Xavier Coudert from comment #6)
> So the var_decl in question is fpstate.0:
> 
>  <var_decl 0x1034e1200 fpstate.0
>     type <array_type 0x1036c4b28
>         type <integer_type 0x1035003f0 c_char public unsigned QI
>             size <integer_cst 0x1034bce70 constant 8>
>             unit-size <integer_cst 0x1034bce88 constant 1>
>             align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
> 0x1035003f0 precision:8 min <integer_cst 0x1034bced0 0> max <integer_cst
> 0x1034bceb8 255>
>             pointer_to_this <pointer_type 0x103503bb8>>
>         BLK
>         size <integer_cst 0x103546988 constant 264>
>         unit-size <integer_cst 0x103546aa8 constant 33>
>         align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
> 0x1036c4b28
>         domain <integer_type 0x1036c4a80 type <integer_type 0x1035007e0>
>             DI
>             size <integer_cst 0x1034bcd80 constant 64>
>             unit-size <integer_cst 0x1034bcd98 constant 8>
>             align:64 warn_if_not_align:0 symtab:0 alias-set -1
> canonical-type 0x1036c4a80 precision:64 min <integer_cst 0x1034bd050 0> max
> <integer_cst 0x103546a60 32>>
>         pointer_to_this <pointer_type 0x1036c4bd0>>
>     addressable used ignored BLK s.f90:10:17 size <integer_cst 0x103546988
> 264> unit-size <integer_cst 0x103546aa8 33>
>     align:8 warn_if_not_align:0 context <function_decl 0x1036c8100 my_sub>>
> 
> And if I look at the tree dump, it seems the variable is indeed not created
> correctly:
> 
> __attribute__((fn spec (". w ")))
> void my_sub (struct __class_my_mod_My_type_t & restrict obs)
> {
>   try
>     {
>       _gfortran_ieee_procedure_entry ((void *) &fpstate.0);
> 
> see the missing declaration for fpstate.0. But it is created by
> gfc_create_var(), like so many other local variables in the front-end, so I
> have no idea why it's disappearing.

Thanks for both the comments, Francois-Xavier. I will look to see if, somehow,
the way in which the finalization is stacked on the function tree is somehow
overwriting the ieee entry call and or the decl of fpstate.0.

Paul

Reply via email to