Uploaded image for project: 'C++ Standard Library'
  1. C++ Standard Library
  2. STDCXX-390

[HP aCC 3.73] error on std::uninitialized_copy<volatile T*, U>()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 4.1.3, 4.1.4
    • 4.2.0
    • 20. General Utilities
    • None
    • HP aCC 3.73 and prior

    • Compiler Error

    Description

      The program below fails to compile with HP aCC 3.73. It compiles successfully with other compilers (including the EDG eccp-based aCC 3.76 beta)

      $ cat t.cpp && nice gmake _CXXOPTS=-V t    
      #include <memory>
      
      int main ()
      {
          int i = 0;
          const int ci = 0;
          volatile int vi = 0;
          const volatile int cvi = 0;
      
          std::uninitialized_copy (&i, &i, &i);
          std::uninitialized_copy (&i, &i, &vi);
      
          std::uninitialized_copy (&ci, &ci, &i);
          std::uninitialized_copy (&ci, &ci, &vi);
      
          std::uninitialized_copy (&vi, &vi, &i);
          std::uninitialized_copy (&vi, &vi, &vi);
      
          std::uninitialized_copy (&cvi, &cvi, &i);
          std::uninitialized_copy (&cvi, &cvi, &vi);
      }
      cadvise aCC -c -I/amd/devco/sebor/stdcxx/include/ansi -I/usr/include    -mt -I/amd/devco/sebor/stdcxx/include -I/build/sebor/stdcxx-aCC-3.73-12D/include -I/amd/devco/sebor/stdcxx/tests/include  -Aa +nostl -V +O2 +Oinitcheck +DD64 +w +W392 +W655 +W684 +W818 +W819 +W849   t.cpp
      aCC: HP ANSI C++ B3910B A.03.73
      Error 226: "/amd/devco/sebor/stdcxx/include/rw/_specialized.h", line 164 # No appropriate function
          found for call of '__rw_construct'. Last viable candidate was "void
          __rw::__rw_construct<int,int>(int *,const int &)"
          ["/amd/devco/sebor/stdcxx/include/rw/_specialized.h", line 84]. Argument of type 'volatile
          int' could not be converted to 'const int &'.
                      _RW::__rw_construct (&*__res, *__first);
                      ^^^^^^^^^^^^^^^^^^^                     
      Error 556: "t.cpp", line 16 # Unable to generate specialization "int
          *std::uninitialized_copy<volatile int *,int *>(volatile int *,volatile int *,int *)" due to
          errors during generation.
              std::uninitialized_copy (&vi, &vi, &i);
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
      Error 556: "t.cpp", line 16 # Unable to generate specialization "int
          *std::uninitialized_copy<volatile int *,int *>(volatile int *,volatile int *,int *)" due to
          errors during generation.
              std::uninitialized_copy (&vi, &vi, &i);
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
      Error 226: "/amd/devco/sebor/stdcxx/include/rw/_specialized.h", line 164 # No appropriate function
          found for call of '__rw_construct'. Last viable candidate was "void
          __rw::__rw_construct<int,int>(volatile int *,const int &)"
          ["/amd/devco/sebor/stdcxx/include/rw/_specialized.h", line 92]. Argument of type 'volatile
          int' could not be converted to 'const int &'.
                      _RW::__rw_construct (&*__res, *__first);
                      ^^^^^^^^^^^^^^^^^^^                     
      Error 556: "t.cpp", line 17 # Unable to generate specialization "volatile int
          *std::uninitialized_copy<volatile int *,volatile int *>(volatile int *,volatile int *,volatile
          int *)" due to errors during generation.
              std::uninitialized_copy (&vi, &vi, &vi);
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
      Error 556: "t.cpp", line 17 # Unable to generate specialization "volatile int
          *std::uninitialized_copy<volatile int *,volatile int *>(volatile int *,volatile int *,volatile
          int *)" due to errors during generation.
              std::uninitialized_copy (&vi, &vi, &vi);
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
      Error 226: "/amd/devco/sebor/stdcxx/include/rw/_specialized.h", line 164 # No appropriate function
          found for call of '__rw_construct'. Last viable candidate was "void
          __rw::__rw_construct<int,int>(int *,const int &)"
          ["/amd/devco/sebor/stdcxx/include/rw/_specialized.h", line 84]. Argument of type 'const
          volatile int' could not be converted to 'const int &'.
                      _RW::__rw_construct (&*__res, *__first);
                      ^^^^^^^^^^^^^^^^^^^                     
      Error 556: "t.cpp", line 19 # Unable to generate specialization "int
          *std::uninitialized_copy<const volatile int *,int *>(const volatile int *,const volatile int
          *,int *)" due to errors during generation.
              std::uninitialized_copy (&cvi, &cvi, &i);
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
      Error 556: "t.cpp", line 19 # Unable to generate specialization "int
          *std::uninitialized_copy<const volatile int *,int *>(const volatile int *,const volatile int
          *,int *)" due to errors during generation.
              std::uninitialized_copy (&cvi, &cvi, &i);
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
      Error 226: "/amd/devco/sebor/stdcxx/include/rw/_specialized.h", line 164 # No appropriate function
          found for call of '__rw_construct'. Last viable candidate was "void
          __rw::__rw_construct<int,int>(volatile int *,const int &)"
          ["/amd/devco/sebor/stdcxx/include/rw/_specialized.h", line 92]. Argument of type 'const
          volatile int' could not be converted to 'const int &'.
                      _RW::__rw_construct (&*__res, *__first);
                      ^^^^^^^^^^^^^^^^^^^                     
      Error 556: "t.cpp", line 20 # Unable to generate specialization "volatile int
          *std::uninitialized_copy<const volatile int *,volatile int *>(const volatile int *,const
          volatile int *,volatile int *)" due to errors during generation.
              std::uninitialized_copy (&cvi, &cvi, &vi);
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
      Error 556: "t.cpp", line 20 # Unable to generate specialization "volatile int
          *std::uninitialized_copy<const volatile int *,volatile int *>(const volatile int *,const
          volatile int *,volatile int *)" due to errors during generation.
              std::uninitialized_copy (&cvi, &cvi, &vi);
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
      Error 445: "t.cpp", line 3 # Cannot recover from earlier errors.
          int main ()
          ^^^^^^^^^^^
      gmake: *** [t.o] Error 2
      

      Attachments

        Issue Links

          Activity

            People

              sebor Martin Sebor
              sebor Martin Sebor
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: