errors on std::uninitialized_xxx<volatile T*>
---------------------------------------------
Key: STDCXX-203
URL: http://issues.apache.org/jira/browse/STDCXX-203
Project: C++ Standard Library
Type: Bug
Components: 20. General Utilities
Versions: 4.1.2, 4.1.3
Environment: all
Reporter: Martin Sebor
Assigned to: Martin Sebor
Fix For: 4.2
The following doesn't compile. It should, even if the current standard
currently says it's ill-formed.
$ cat t.cpp && gmake t
#include <memory>
int main ()
{
volatile int i;
std::uninitialized_copy (&i, &i, &i);
std::uninitialized_fill (&i, &i, 0);
std::uninitialized_fill_n (&i, 0, 0);
}
aCC -c -I/amd/devco/sebor/dev/stdlib/include/ansi -I/usr/include
-D_RWSTD_USE_CONFIG -I/amd/devco/sebor/dev/stdlib/include
-I/build/sebor/aCC-3.63-8d/include
-I/amd/devco/sebor/dev/stdlib/examples/include -Aa +nostl +O2 +w +W392 +W655
+W684 +W818 +W819 +W849 t.cpp
Error 226: "/amd/devco/sebor/dev/stdlib/include/rw/_specialized.h", line 124 #
No appropriate function found for call of '__rw_construct'. Last viable
candidate was "void __rw::__rw_construct<volatile int,int>(volatile int
*,const int &)" ["/amd/devco/sebor/dev/stdlib/include/rw/_specialized.h",
line 81]. Argument of type 'volatile int' could not be converted to 'const
int &'.
_RW::__rw_construct (&*__res, *__first);
^^^^^^^^^^^^^^^^^^^
Error 556: "t.cpp", line 7 # 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 (&i, &i, &i);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error 556: "t.cpp", line 7 # 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 (&i, &i, &i);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error 226: "/amd/devco/sebor/dev/stdlib/include/rw/_specialized.h", line 83 #
No appropriate function found for call of 'operator new'. Last viable
candidate was "void *operator new(unsigned long,void *)"
["/amd/devco/sebor/dev/stdlib/include/rw/_new.h", line 38]. Argument of
type 'volatile int *' could not be converted to 'void *'.
::new (__p) _TypeT (__val);
^^^^^^^^^^^^^^^^^^^^^^^^^^
Error 556: "t.cpp", line 8 # Unable to generate specialization "void
__rw::__rw_construct<volatile int,int>(volatile int *,const int &)" due to
errors during generation.
std::uninitialized_fill (&i, &i, 0);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error 556: "t.cpp", line 8 # Unable to generate specialization "void
__rw::__rw_construct<volatile int,int>(volatile int *,const int &)" due to
errors during generation.
std::uninitialized_fill (&i, &i, 0);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error 445: "t.cpp", line 3 # Cannot recover from earlier errors.
int main ()
^^^^^^^^^^^
gmake: *** [t.o] Error 2
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira