Hi Jason,

> On 4 Oct 2021, at 19:27, Jason Merrill via Gcc-patches 
> <gcc-patches@gcc.gnu.org> wrote:
> 
> When r12-4038 introduced the global auto_vec save_opt_decoded_options, it 
> broke compilers configured with --enable-gather-detailed-mem-stats, due to 
> the memory descriptors getting discarded before the auto_vec was destroyed.  
> Attached below are two approaches to making this work, either by using the 
> init_priority attribute, or turning vec_mem_desc into a singleton function.  
> I prefer the first one, primarily because it doesn't require auto_vec 
> variables to force immediate allocation.  It relies on a G++ extension, but I 
> figure that's OK for code that is only exercised with a debugging configure 
> flag.

I suspect the problem is not necessarily that it’s a G++ extension, (init 
priority has some support elsewhere) - but that some targets (with non-binutils 
ld) cannot support it [between multiple TUs at least] even with a native G++ 
(Darwin at least cannot).  OTOH, there are worse broken things from this than a 
gathering of stats…
Iain

> Thoughts?  Either one OK for 
> trunk?<0001-vec-Fix-enable-gather-detailed-mem-stats.patch><0002-vec-make-vec_mem_desc-a-singleton-function.patch>

Reply via email to