|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
[HP aCC 3.xx on HP-UX/PA-RISC] 20.specialized test fails to compile The 20.specialized test fails to compile after change in http://svn.apache.org/viewvc?view=rev&revision=697885
-------- aCC -c -D_RWSTDDEBUG -mt -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/tests/include -AA -g +d +DD64 +w +W392,655,684,818,819,849 $(TOPDIR)/tests/utilities/20.specialized.cpp Error 746: "$(TOPDIR)/include/rw/_specialized.h", line 175 # Cannot use static_cast to convert struct FwdIter<Y> to volatile void *. _RWSTD_STATIC_CAST (volatile void*, &*__res); ^^^^^^^^^^^^^^^^^^ Error 556: "$(TOPDIR)/tests/utilities/20.specialized.cpp", line 140 # Unable to generate specialization "FwdIter<Y> std::uninitialized_copy<InputIter<int>,FwdIter<Y> >(InputIter<int>,InputIter<int>,FwdIter<Y>)" due to errors during generation. std::uninitialized_copy (first, last, result); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error 556: "$(TOPDIR)/tests/utilities/20.specialized.cpp", line 140 # Unable to generate specialization "FwdIter<Y> std::uninitialized_copy<InputIter<int>,FwdIter<Y> >(InputIter<int>,InputIter<int>,FwdIter<Y>)" due to errors during generation. std::uninitialized_copy (first, last, result); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ gmake: *** [20.specialized.o] Error 2 -------- On the other compilers/platforms this test compiled without errors. Can anyone to look into this issue? Farid. |
|
|
Re: [HP aCC 3.xx on HP-UX/PA-RISC] 20.specialized test fails to compileFarid Zaripov wrote:
> The 20.specialized test fails to compile after change in http://svn.apache.org/viewvc?view=rev&revision=697885 > > -------- > aCC -c -D_RWSTDDEBUG -mt -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/tests/include -AA -g +d +DD64 +w +W392,655,684,818,819,849 $(TOPDIR)/tests/utilities/20.specialized.cpp > Error 746: "$(TOPDIR)/include/rw/_specialized.h", line 175 # Cannot use static_cast to convert struct FwdIter<Y> to volatile void *. > _RWSTD_STATIC_CAST (volatile void*, &*__res); > ^^^^^^^^^^^^^^^^^^ > Error 556: "$(TOPDIR)/tests/utilities/20.specialized.cpp", line 140 # Unable to generate specialization "FwdIter<Y> std::uninitialized_copy<InputIter<int>,FwdIter<Y> >(InputIter<int>,InputIter<int>,FwdIter<Y>)" due to errors during generation. > std::uninitialized_copy (first, last, result); > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > Error 556: "$(TOPDIR)/tests/utilities/20.specialized.cpp", line 140 # Unable to generate specialization "FwdIter<Y> std::uninitialized_copy<InputIter<int>,FwdIter<Y> >(InputIter<int>,InputIter<int>,FwdIter<Y>)" due to errors during generation. > std::uninitialized_copy (first, last, result); > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > gmake: *** [20.specialized.o] Error 2 > -------- > > On the other compilers/platforms this test compiled without errors. > > Can anyone to look into this issue? It's the const qualifier on __ptr that's causing the trouble (see the test case below). This patch fixes for me: Index: include/rw/_specialized.h =================================================================== --- include/rw/_specialized.h (revision 704292) +++ include/rw/_specialized.h (working copy) @@ -171,7 +171,8 @@ _TRY { for (; __first != __last; ++__first, ++__res) { - volatile void* const __ptr = + // avoid const-qualifying ptr to prevent an HP aCC 3 bug + volatile void* /* const */ __ptr = _RWSTD_STATIC_CAST (volatile void*, &*__res); ::new (_RWSTD_CONST_CAST (void*, __ptr)) _TypeT (*__first); } I haven't tested it except with aCC but it seems safe enough to commit if you're happy with it. What a pain this bug, huh? Martin $ cat z.cpp && aCC -V z.cpp struct S { int *x; int& operator* () const { return *x; } }; template <class T> void foo (T x) { volatile void* const p = static_cast<volatile void*>(&*x); } int main () { foo (S ()); } aCC: HP ANSI C++ B3910B A.03.73 Error 746: "z.cpp", line 7 # Cannot use static_cast to convert struct S to volatile void *. volatile void* const p = static_cast<volatile void*>(&*x); ^ Error 556: "z.cpp", line 11 # Unable to generate specialization "void foo<S>(S)" due to errors during generation. foo (S ()); ^^^^^^^^^^ Error 556: "z.cpp", line 11 # Unable to generate specialization "void foo<S>(S)" due to errors during generation. foo (S ()); ^^^^^^^^^^ |
| Free embeddable forum powered by Nabble | Forum Help |