www.digitalmars.com         C & C++   DMDScript  

c++.stlsoft - Compilation fails on Leopard, GCC 4.0.1

reply mis232 <mis232 mis232.com> writes:
[Posted this also on Pantheios Bugs tracker]

g++-4.0 -c -Wall -pedantic -Wno-long-long -Wno-long-double
-Wno-unused-val
ue -Wno-unused-function -Werror -O1 -D_REENTRANT -D_DEBUG -UNDEBUG
-Dun
ix -DPANTHEIOS_NO_AUTO_INIT -I../../include
-I"~/downloads/stlsoft-1.9.16/i
nclude" -o core.api.debug.o ../../src/core/api.cpp
~/downloads/stlsoft-1.9.16/include/unixstl/error/exceptions.hpp: In member
function ‘virtual const char*
stlsoft::unixstl_project::unix_exception::what() const’:
~/downloads/stlsoft-1.9.16/include/unixstl/error/exceptions.hpp:165:
error:
‘__eprintf(((const char*)"%s:%u: failed assertion `%s\'\012"), ((const
char*)"~/downloads/stlsoft-1.9.16/include/unixstl/error/exceptions.hpp"),
165u, ((const char*)"NULL != s"))’ has type ‘void’ and is not a
throw-expression
~/downloads/stlsoft-1.9.16/include/unixstl/error/exceptions.hpp: In static
member function ‘static stlsoft::exception_string
stlsoft::unixstl_project::unix_exception::create_reason_(const char*,
int)’:
~/downloads/stlsoft-1.9.16/include/unixstl/error/exceptions.hpp:209:
error:
‘__eprintf(((const char*)"%s:%u: failed assertion `%s\'\012"), ((const
char*)"~/downloads/stlsoft-1.9.16/include/unixstl/error/exceptions.hpp"),
209u, ((const char*)"NULL != s"))’ has type ‘void’ and is not a
throw-expression
~/downloads/stlsoft-1.9.16/include/unixstl/synch/thread_mutex.hpp: In
constructor
‘stlsoft::unixstl_project::thread_mutex::thread_mutex(pthread_mutex_t*,
stlsoft::unixstl_project::us_bool_t)’:
~/downloads/stlsoft-1.9.16/include/unixstl/synch/thread_mutex.hpp:154:
error: ‘__eprintf(((const char*)"%s:%u: failed assertion `%s\'\012"),
((const
char*)"~/downloads/stlsoft-1.9.16/include/unixstl/synch/thread_mutex.hpp"),

154u, ((const char*)"NULL != mx"))’ has type ‘void’ and is not a
throw-expression


Looks like __assert has changed to return void. Wrapping the __assert part
of UNIXSTL_ASSERT with (..., 0) fixes it.
Jan 04 2008
parent "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
This is now fixed, as of 1.9.17. Download from http://stlsoft.org/

"mis232" <mis232 mis232.com> wrote in message
news:flm86g$vga$1 digitalmars.com...
 [Posted this also on Pantheios Bugs tracker]

 g++-4.0 -c -Wall -pedantic -Wno-long-long -Wno-long-double
 -Wno-unused-val
 ue -Wno-unused-function -Werror -O1 -D_REENTRANT -D_DEBUG -UNDEBUG
 -Dun
 ix -DPANTHEIOS_NO_AUTO_INIT -I../../include
 -I"~/downloads/stlsoft-1.9.16/i
 nclude" -o core.api.debug.o ../../src/core/api.cpp
 ~/downloads/stlsoft-1.9.16/include/unixstl/error/exceptions.hpp: In member
 function 'virtual const char*
 stlsoft::unixstl_project::unix_exception::what() const':
 ~/downloads/stlsoft-1.9.16/include/unixstl/error/exceptions.hpp:165:
 error:
 '__eprintf(((const char*)"%s:%u: failed assertion `%s\'\012"), ((const
 char*)"~/downloads/stlsoft-1.9.16/include/unixstl/error/exceptions.hpp"),
 165u, ((const char*)"NULL != s"))' has type 'void' and is not a
 throw-expression
 ~/downloads/stlsoft-1.9.16/include/unixstl/error/exceptions.hpp: In static
 member function 'static stlsoft::exception_string
 stlsoft::unixstl_project::unix_exception::create_reason_(const char*,
 int)':
 ~/downloads/stlsoft-1.9.16/include/unixstl/error/exceptions.hpp:209:
 error:
 '__eprintf(((const char*)"%s:%u: failed assertion `%s\'\012"), ((const
 char*)"~/downloads/stlsoft-1.9.16/include/unixstl/error/exceptions.hpp"),
 209u, ((const char*)"NULL != s"))' has type 'void' and is not a
 throw-expression
 ~/downloads/stlsoft-1.9.16/include/unixstl/synch/thread_mutex.hpp: In
 constructor
 'stlsoft::unixstl_project::thread_mutex::thread_mutex(pthread_mutex_t*,
 stlsoft::unixstl_project::us_bool_t)':
 ~/downloads/stlsoft-1.9.16/include/unixstl/synch/thread_mutex.hpp:154:
 error: '__eprintf(((const char*)"%s:%u: failed assertion `%s\'\012"),
 ((const
char*)"~/downloads/stlsoft-1.9.16/include/unixstl/synch/thread_mutex.hpp"),
 154u, ((const char*)"NULL != mx"))' has type 'void' and is not a
 throw-expression


 Looks like __assert has changed to return void. Wrapping the __assert part
 of UNIXSTL_ASSERT with (..., 0) fixes it.
Jan 08 2008