https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85509
--- Comment #5 from ASA <aaron_sami_abassi at hotmail dot com> ---
> > I would expect this is likely true for any non-const static duration
> > function pointer, not just the case when the auto type specifier is used,
> > but I have not confirmed it.
>
> But it is the case for any non-const static duration function pointer.
> This has nothing to do with 'auto', changing the testcase to
>
> static inline bool
> RunTest( void ) {
> static bool (*PerformQuickly)(int &, const int &) = Perform< SumQuickly
> >;
> static bool (*PerformSafely)(int &, const int &) = Perform< SumSafely >;
> int i = 0;
> return PerformQuickly( i, 1 ) && !PerformSafely( i, INT_MAX );
> }
>
> has no effect.
Which is exactly what I stated I would have expected. Thank you for the
confirmation of that expectation, though very oddly worded.