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

            Bug ID: 68954
           Summary: [5/6 Regression] -Wdeprecated-declarations warns for
                    system header templates
           Product: gcc
           Version: 5.3.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rguenth at gcc dot gnu.org
  Target Milestone: ---

std::auto_ptr is marked as deprecated in
libstdc++-v3/include/backward/auto_ptr.h
and

#include <memory>

int main()
{
  int i;
  std::auto_ptr<int> x;
}

warns about this even without -Wsystem-headers.  What is worse, since GCC 5.3
adding -Werror makes this an error while with 5.2 it was a warning despite
-Werror:

> /space/rguenther/install/gcc-5.2/bin/g++ t.C -S -std=gnu++11  
> -Wdeprecated-declarations -Werror
t.C: In function 'int main()':
t.C:6:8: warning: 'template<class> class std::auto_ptr' is deprecated
[-Wdeprecated-declarations]
   std::auto_ptr<int> x;
        ^
In file included from
/home/space/rguenther/install/gcc-5.2/include/c++/5.2.0/memory:81:0,
                 from t.C:1:
/home/space/rguenther/install/gcc-5.2/include/c++/5.2.0/bits/unique_ptr.h:49:28note:
declared here
   template<typename> class auto_ptr;
                            ^

> /space/rguenther/install/gcc-5.3/bin/g++ t.C -S -std=gnu++11  
> -Wdeprecated-declarations -Werror
t.C: In function ‘int main()’:
t.C:6:8: error: ‘template<class> class std::auto_ptr’ is deprecated
[-Werror=deprecated-declarations]
   std::auto_ptr<int> x;
        ^
In file included from
/home/space/rguenther/install/gcc-5.3/include/c++/5.3.0/memory:81:0,
                 from t.C:1:
/home/space/rguenther/install/gcc-5.3/include/c++/5.3.0/bits/unique_ptr.h:49:28note:
declared here
   template<typename> class auto_ptr;
                            ^
cc1plus: all warnings being treated as errors


Note that GCC 4.9 does not warn at all, not even with -Wsystem-headers.

Reply via email to