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.