On Mon, 24 Oct 2022 at 18:30, Jason Merrill wrote: > > On 10/21/22 19:28, Marek Polacek wrote: > > When testing a previous version of the patch, there were many FAILs in > > libstdc++'s 22_locale/; all of them because the warning triggered on > > > > const test_type& obj = std::use_facet<test_type>(std::locale()); > > > > but this code looks valid -- std::use_facet doesn't return a reference > > to its parameter. Therefore I added code to suppress the warning when > > the call is std::use_facet. Now 22_locale/* pass even with the warning > > on. We could exclude more std:: functions like this if desirable. > > Instead of adding special cases in the compiler, let's disable the > warning around the definition of use_facet (and adjust the compiler as > needed so that avoids the warning).
I assume you mean using #pragma here. If we disable it around the definition of use_facet, will that disable it for callers of use_facet, or only within the definition of use_facet itself?